﻿#if USE_UNI_LUA
using LuaAPI = UniLua.Lua;
using RealStatePtr = UniLua.ILuaState;
using LuaCSFunction = UniLua.CSharpFunctionDelegate;
#else
using LuaAPI = XLua.LuaDLL.Lua;
using RealStatePtr = System.IntPtr;
using LuaCSFunction = XLuaBase.lua_CSFunction;
#endif

using System;


namespace XLua
{
    public partial class ObjectTranslator
    {
        
        class IniterAdderUnityEngineVector2
        {
            static IniterAdderUnityEngineVector2()
            {
                LuaEnv.AddIniter(Init);
            }
			
			static void Init(LuaEnv luaenv, ObjectTranslator translator)
			{
			
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Vector2>(translator.PushUnityEngineVector2, translator.Get, translator.UpdateUnityEngineVector2);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Vector3>(translator.PushUnityEngineVector3, translator.Get, translator.UpdateUnityEngineVector3);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Vector4>(translator.PushUnityEngineVector4, translator.Get, translator.UpdateUnityEngineVector4);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Color>(translator.PushUnityEngineColor, translator.Get, translator.UpdateUnityEngineColor);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Quaternion>(translator.PushUnityEngineQuaternion, translator.Get, translator.UpdateUnityEngineQuaternion);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Ray>(translator.PushUnityEngineRay, translator.Get, translator.UpdateUnityEngineRay);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Bounds>(translator.PushUnityEngineBounds, translator.Get, translator.UpdateUnityEngineBounds);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Ray2D>(translator.PushUnityEngineRay2D, translator.Get, translator.UpdateUnityEngineRay2D);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.UpdateSoldierStruct>(translator.PushYoozooGameplayRTSUpdateSoldierStruct, translator.Get, translator.UpdateYoozooGameplayRTSUpdateSoldierStruct);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.EMarchStatus>(translator.PushYoozooGameplayRTSEMarchStatus, translator.Get, translator.UpdateYoozooGameplayRTSEMarchStatus);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.CastSkill>(translator.PushYoozooGameplayRTSProtoCastSkill, translator.Get, translator.UpdateYoozooGameplayRTSProtoCastSkill);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.Coordinate>(translator.PushYoozooGameplayRTSProtoCoordinate, translator.Get, translator.UpdateYoozooGameplayRTSProtoCoordinate);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.CrossingGate>(translator.PushYoozooGameplayRTSProtoCrossingGate, translator.Get, translator.UpdateYoozooGameplayRTSProtoCrossingGate);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.SoldierLocation>(translator.PushYoozooGameplayRTSProtoSoldierLocation, translator.Get, translator.UpdateYoozooGameplayRTSProtoSoldierLocation);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.ElementResult>(translator.PushYoozooGameplayRTSProtoElementResult, translator.Get, translator.UpdateYoozooGameplayRTSProtoElementResult);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2>(translator.PushYoozooGameplayRTSProtoMapPoliceOfficeL2, translator.Get, translator.UpdateYoozooGameplayRTSProtoMapPoliceOfficeL2);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4>(translator.PushYoozooGameplayRTSProtoMapPoliceOfficeL4, translator.Get, translator.UpdateYoozooGameplayRTSProtoMapPoliceOfficeL4);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType>(translator.PushYoozooGameplayRTSProtoTargetCoordinateType, translator.Get, translator.UpdateYoozooGameplayRTSProtoTargetCoordinateType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.TroopsSoldier>(translator.PushYoozooGameplayRTSProtoTroopsSoldier, translator.Get, translator.UpdateYoozooGameplayRTSProtoTroopsSoldier);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig>(translator.PushYoozooGameplayCityCityRealAiSpecialRecoverConfig, translator.Get, translator.UpdateYoozooGameplayCityCityRealAiSpecialRecoverConfig);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.City.GlobalVariablesConfig>(translator.PushYoozooGameplayCityGlobalVariablesConfig, translator.Get, translator.UpdateYoozooGameplayCityGlobalVariablesConfig);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult>(translator.PushYoozooManagersResourceManagerV2FrameworkResourceHasAssetResult, translator.Get, translator.UpdateYoozooManagersResourceManagerV2FrameworkResourceHasAssetResult);
				translator.RegisterPushAndGetAndUpdate<BunkerHitPointType>(translator.PushBunkerHitPointType, translator.Get, translator.UpdateBunkerHitPointType);
				translator.RegisterPushAndGetAndUpdate<DG.Tweening.Ease>(translator.PushDGTweeningEase, translator.Get, translator.UpdateDGTweeningEase);
				translator.RegisterPushAndGetAndUpdate<DG.Tweening.LoopType>(translator.PushDGTweeningLoopType, translator.Get, translator.UpdateDGTweeningLoopType);
				translator.RegisterPushAndGetAndUpdate<DG.Tweening.PathMode>(translator.PushDGTweeningPathMode, translator.Get, translator.UpdateDGTweeningPathMode);
				translator.RegisterPushAndGetAndUpdate<DG.Tweening.PathType>(translator.PushDGTweeningPathType, translator.Get, translator.UpdateDGTweeningPathType);
				translator.RegisterPushAndGetAndUpdate<DG.Tweening.RotateMode>(translator.PushDGTweeningRotateMode, translator.Get, translator.UpdateDGTweeningRotateMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.PrimitiveType>(translator.PushUnityEnginePrimitiveType, translator.Get, translator.UpdateUnityEnginePrimitiveType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.SimulationMode>(translator.PushUnityEngineSimulationMode, translator.Get, translator.UpdateUnityEngineSimulationMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.RuntimePlatform>(translator.PushUnityEngineRuntimePlatform, translator.Get, translator.UpdateUnityEngineRuntimePlatform);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.TextureFormat>(translator.PushUnityEngineTextureFormat, translator.Get, translator.UpdateUnityEngineTextureFormat);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.RenderMode>(translator.PushUnityEngineRenderMode, translator.Get, translator.UpdateUnityEngineRenderMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.CameraClearFlags>(translator.PushUnityEngineCameraClearFlags, translator.Get, translator.UpdateUnityEngineCameraClearFlags);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.LightmapsMode>(translator.PushUnityEngineLightmapsMode, translator.Get, translator.UpdateUnityEngineLightmapsMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.FogMode>(translator.PushUnityEngineFogMode, translator.Get, translator.UpdateUnityEngineFogMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Rendering.DefaultReflectionMode>(translator.PushUnityEngineRenderingDefaultReflectionMode, translator.Get, translator.UpdateUnityEngineRenderingDefaultReflectionMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Rendering.AmbientMode>(translator.PushUnityEngineRenderingAmbientMode, translator.Get, translator.UpdateUnityEngineRenderingAmbientMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Rendering.ReflectionProbeMode>(translator.PushUnityEngineRenderingReflectionProbeMode, translator.Get, translator.UpdateUnityEngineRenderingReflectionProbeMode);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Mars.Got.QualityEnum>(translator.PushYoozooMarsGotQualityEnum, translator.Get, translator.UpdateYoozooMarsGotQualityEnum);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status>(translator.PushYoozooModulesDownloadDownloadWhilePlayingManagerStatus, translator.Get, translator.UpdateYoozooModulesDownloadDownloadWhilePlayingManagerStatus);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Modules.Download.PreDownloadManager.Status>(translator.PushYoozooModulesDownloadPreDownloadManagerStatus, translator.Get, translator.UpdateYoozooModulesDownloadPreDownloadManagerStatus);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode>(translator.PushYoozooManagersResourceManagerV2FrameworkResourceResourceMode, translator.Get, translator.UpdateYoozooManagersResourceManagerV2FrameworkResourceResourceMode);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.Liberty.AI.AnimationState>(translator.PushYoozooGameplayLibertyAIAnimationState, translator.Get, translator.UpdateYoozooGameplayLibertyAIAnimationState);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.Liberty.AI.BattleState>(translator.PushYoozooGameplayLibertyAIBattleState, translator.Get, translator.UpdateYoozooGameplayLibertyAIBattleState);
				translator.RegisterPushAndGetAndUpdate<TreeType>(translator.PushTreeType, translator.Get, translator.UpdateTreeType);
				translator.RegisterPushAndGetAndUpdate<System.Environment.SpecialFolder>(translator.PushSystemEnvironmentSpecialFolder, translator.Get, translator.UpdateSystemEnvironmentSpecialFolder);
				translator.RegisterPushAndGetAndUpdate<System.Environment.SpecialFolderOption>(translator.PushSystemEnvironmentSpecialFolderOption, translator.Get, translator.UpdateSystemEnvironmentSpecialFolderOption);
				translator.RegisterPushAndGetAndUpdate<WorldEntry.MapPointType>(translator.PushWorldEntryMapPointType, translator.Get, translator.UpdateWorldEntryMapPointType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Manager.TouchManager.RaycastTarget>(translator.PushYoozooManagerTouchManagerRaycastTarget, translator.Get, translator.UpdateYoozooManagerTouchManagerRaycastTarget);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.RectTransform.Edge>(translator.PushUnityEngineRectTransformEdge, translator.Get, translator.UpdateUnityEngineRectTransformEdge);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.RectTransform.Axis>(translator.PushUnityEngineRectTransformAxis, translator.Get, translator.UpdateUnityEngineRectTransformAxis);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Texture2D.EXRFlags>(translator.PushUnityEngineTexture2DEXRFlags, translator.Get, translator.UpdateUnityEngineTexture2DEXRFlags);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.ScrollRect.MovementType>(translator.PushUnityEngineUIScrollRectMovementType, translator.Get, translator.UpdateUnityEngineUIScrollRectMovementType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.ScrollRect.ScrollbarVisibility>(translator.PushUnityEngineUIScrollRectScrollbarVisibility, translator.Get, translator.UpdateUnityEngineUIScrollRectScrollbarVisibility);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.GridLayoutGroup.Corner>(translator.PushUnityEngineUIGridLayoutGroupCorner, translator.Get, translator.UpdateUnityEngineUIGridLayoutGroupCorner);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.GridLayoutGroup.Axis>(translator.PushUnityEngineUIGridLayoutGroupAxis, translator.Get, translator.UpdateUnityEngineUIGridLayoutGroupAxis);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.GridLayoutGroup.Constraint>(translator.PushUnityEngineUIGridLayoutGroupConstraint, translator.Get, translator.UpdateUnityEngineUIGridLayoutGroupConstraint);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.ContentSizeFitter.FitMode>(translator.PushUnityEngineUIContentSizeFitterFitMode, translator.Get, translator.UpdateUnityEngineUIContentSizeFitterFitMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.InputField.ContentType>(translator.PushUnityEngineUIInputFieldContentType, translator.Get, translator.UpdateUnityEngineUIInputFieldContentType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.InputField.InputType>(translator.PushUnityEngineUIInputFieldInputType, translator.Get, translator.UpdateUnityEngineUIInputFieldInputType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.InputField.CharacterValidation>(translator.PushUnityEngineUIInputFieldCharacterValidation, translator.Get, translator.UpdateUnityEngineUIInputFieldCharacterValidation);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.InputField.LineType>(translator.PushUnityEngineUIInputFieldLineType, translator.Get, translator.UpdateUnityEngineUIInputFieldLineType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YList.Direction>(translator.PushYoozooUIYGUIYListDirection, translator.Get, translator.UpdateYoozooUIYGUIYListDirection);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YSlider.Direction>(translator.PushYoozooUIYGUIYSliderDirection, translator.Get, translator.UpdateYoozooUIYGUIYSliderDirection);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YSlider.TextType>(translator.PushYoozooUIYGUIYSliderTextType, translator.Get, translator.UpdateYoozooUIYGUIYSliderTextType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YRichText.LineAlignment>(translator.PushYoozooUIYGUIYRichTextLineAlignment, translator.Get, translator.UpdateYoozooUIYGUIYRichTextLineAlignment);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment>(translator.PushYoozooUIYGUIYRichUnderlineTextLineAlignment, translator.Get, translator.UpdateYoozooUIYGUIYRichUnderlineTextLineAlignment);
				translator.RegisterPushAndGetAndUpdate<Gameplay.PVE.AStarMgr.EShapeType>(translator.PushGameplayPVEAStarMgrEShapeType, translator.Get, translator.UpdateGameplayPVEAStarMgrEShapeType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Camera.GateFitMode>(translator.PushUnityEngineCameraGateFitMode, translator.Get, translator.UpdateUnityEngineCameraGateFitMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Camera.FieldOfViewAxis>(translator.PushUnityEngineCameraFieldOfViewAxis, translator.Get, translator.UpdateUnityEngineCameraFieldOfViewAxis);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Camera.StereoscopicEye>(translator.PushUnityEngineCameraStereoscopicEye, translator.Get, translator.UpdateUnityEngineCameraStereoscopicEye);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.Camera.MonoOrStereoscopicEye>(translator.PushUnityEngineCameraMonoOrStereoscopicEye, translator.Get, translator.UpdateUnityEngineCameraMonoOrStereoscopicEye);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.ListView.ListSelectionMode>(translator.PushYoozooUIYGUIListViewListSelectionMode, translator.Get, translator.UpdateYoozooUIYGUIListViewListSelectionMode);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.ListView.ListLayoutType>(translator.PushYoozooUIYGUIListViewListLayoutType, translator.Get, translator.UpdateYoozooUIYGUIListViewListLayoutType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.ListView.VertAlignType>(translator.PushYoozooUIYGUIListViewVertAlignType, translator.Get, translator.UpdateYoozooUIYGUIListViewVertAlignType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.ListView.AlignType>(translator.PushYoozooUIYGUIListViewAlignType, translator.Get, translator.UpdateYoozooUIYGUIListViewAlignType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder>(translator.PushYoozooUIYGUIListViewChildrenRenderOrder, translator.Get, translator.UpdateYoozooUIYGUIListViewChildrenRenderOrder);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error>(translator.PushYoozooModulesDownloadDownloadWhilePlayingManagerError, translator.Get, translator.UpdateYoozooModulesDownloadDownloadWhilePlayingManagerError);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Modules.Download.PreDownloadManager.Error>(translator.PushYoozooModulesDownloadPreDownloadManagerError, translator.Get, translator.UpdateYoozooModulesDownloadPreDownloadManagerError);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineBrain.UpdateMethod>(translator.PushCinemachineCinemachineBrainUpdateMethod, translator.Get, translator.UpdateCinemachineCinemachineBrainUpdateMethod);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineBrain.BrainUpdateMethod>(translator.PushCinemachineCinemachineBrainBrainUpdateMethod, translator.Get, translator.UpdateCinemachineCinemachineBrainBrainUpdateMethod);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineBlendDefinition.Style>(translator.PushCinemachineCinemachineBlendDefinitionStyle, translator.Get, translator.UpdateCinemachineCinemachineBlendDefinitionStyle);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineTransposer.BindingMode>(translator.PushCinemachineCinemachineTransposerBindingMode, translator.Get, translator.UpdateCinemachineCinemachineTransposerBindingMode);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineTransposer.AngularDampingMode>(translator.PushCinemachineCinemachineTransposerAngularDampingMode, translator.Get, translator.UpdateCinemachineCinemachineTransposerAngularDampingMode);
				translator.RegisterPushAndGetAndUpdate<Reporter._LogType>(translator.PushReporter_LogType, translator.Get, translator.UpdateReporter_LogType);
				translator.RegisterPushAndGetAndUpdate<System.Reflection.BindingFlags>(translator.PushSystemReflectionBindingFlags, translator.Get, translator.UpdateSystemReflectionBindingFlags);
				translator.RegisterPushAndGetAndUpdate<ReddotNode.ReddotNodeType>(translator.PushReddotNodeReddotNodeType, translator.Get, translator.UpdateReddotNodeReddotNodeType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.GraphicRaycaster.BlockingObjects>(translator.PushUnityEngineUIGraphicRaycasterBlockingObjects, translator.Get, translator.UpdateUnityEngineUIGraphicRaycasterBlockingObjects);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.CanvasScaler.ScaleMode>(translator.PushUnityEngineUICanvasScalerScaleMode, translator.Get, translator.UpdateUnityEngineUICanvasScalerScaleMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.CanvasScaler.ScreenMatchMode>(translator.PushUnityEngineUICanvasScalerScreenMatchMode, translator.Get, translator.UpdateUnityEngineUICanvasScalerScreenMatchMode);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.CanvasScaler.Unit>(translator.PushUnityEngineUICanvasScalerUnit, translator.Get, translator.UpdateUnityEngineUICanvasScalerUnit);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.Type>(translator.PushUnityEngineUIImageType, translator.Get, translator.UpdateUnityEngineUIImageType);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.FillMethod>(translator.PushUnityEngineUIImageFillMethod, translator.Get, translator.UpdateUnityEngineUIImageFillMethod);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.OriginHorizontal>(translator.PushUnityEngineUIImageOriginHorizontal, translator.Get, translator.UpdateUnityEngineUIImageOriginHorizontal);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.OriginVertical>(translator.PushUnityEngineUIImageOriginVertical, translator.Get, translator.UpdateUnityEngineUIImageOriginVertical);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.Origin90>(translator.PushUnityEngineUIImageOrigin90, translator.Get, translator.UpdateUnityEngineUIImageOrigin90);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.Origin180>(translator.PushUnityEngineUIImageOrigin180, translator.Get, translator.UpdateUnityEngineUIImageOrigin180);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Image.Origin360>(translator.PushUnityEngineUIImageOrigin360, translator.Get, translator.UpdateUnityEngineUIImageOrigin360);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YScrollRect.Direction>(translator.PushYoozooUIYGUIYScrollRectDirection, translator.Get, translator.UpdateYoozooUIYGUIYScrollRectDirection);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YScrollRect.MovementType>(translator.PushYoozooUIYGUIYScrollRectMovementType, translator.Get, translator.UpdateYoozooUIYGUIYScrollRectMovementType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility>(translator.PushYoozooUIYGUIYScrollRectScrollbarVisibility, translator.Get, translator.UpdateYoozooUIYGUIYScrollRectScrollbarVisibility);
				translator.RegisterPushAndGetAndUpdate<UnityEngine.UI.Selectable.Transition>(translator.PushUnityEngineUISelectableTransition, translator.Get, translator.UpdateUnityEngineUISelectableTransition);
				translator.RegisterPushAndGetAndUpdate<Mopsicus.Plugins.MobileInputField.ReturnKeyType>(translator.PushMopsicusPluginsMobileInputFieldReturnKeyType, translator.Get, translator.UpdateMopsicusPluginsMobileInputFieldReturnKeyType);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode>(translator.PushCinemachineCinemachineVirtualCameraBaseStandbyUpdateMode, translator.Get, translator.UpdateCinemachineCinemachineVirtualCameraBaseStandbyUpdateMode);
				translator.RegisterPushAndGetAndUpdate<Cinemachine.CinemachineVirtualCameraBase.BlendHint>(translator.PushCinemachineCinemachineVirtualCameraBaseBlendHint, translator.Get, translator.UpdateCinemachineCinemachineVirtualCameraBaseBlendHint);
				translator.RegisterPushAndGetAndUpdate<MarchEntity.SquareAction>(translator.PushMarchEntitySquareAction, translator.Get, translator.UpdateMarchEntitySquareAction);
				translator.RegisterPushAndGetAndUpdate<com.youzu.warh.protocol.NormalAttackType>(translator.PushcomyouzuwarhprotocolNormalAttackType, translator.Get, translator.UpdatecomyouzuwarhprotocolNormalAttackType);
				translator.RegisterPushAndGetAndUpdate<com.youzu.warh.protocol.BattleMountUnitType>(translator.PushcomyouzuwarhprotocolBattleMountUnitType, translator.Get, translator.UpdatecomyouzuwarhprotocolBattleMountUnitType);
				translator.RegisterPushAndGetAndUpdate<com.youzu.warh.protocol.Resource>(translator.PushcomyouzuwarhprotocolResource, translator.Get, translator.UpdatecomyouzuwarhprotocolResource);
				translator.RegisterPushAndGetAndUpdate<com.youzu.warh.protocol.TargetCoordinateType>(translator.PushcomyouzuwarhprotocolTargetCoordinateType, translator.Get, translator.UpdatecomyouzuwarhprotocolTargetCoordinateType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.Liberty.PlayerController.ControlMode>(translator.PushYoozooGameplayLibertyPlayerControllerControlMode, translator.Get, translator.UpdateYoozooGameplayLibertyPlayerControllerControlMode);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState>(translator.PushYoozooGameplayLibertyPlayerControllerEnterExitCarState, translator.Get, translator.UpdateYoozooGameplayLibertyPlayerControllerEnterExitCarState);
				translator.RegisterPushAndGetAndUpdate<System.Net.NetworkInformation.NetworkInterfaceType>(translator.PushSystemNetNetworkInformationNetworkInterfaceType, translator.Get, translator.UpdateSystemNetNetworkInformationNetworkInterfaceType);
				translator.RegisterPushAndGetAndUpdate<System.Net.Sockets.AddressFamily>(translator.PushSystemNetSocketsAddressFamily, translator.Get, translator.UpdateSystemNetSocketsAddressFamily);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.MarchType>(translator.PushYoozooGameplayRTSProtoMarchType, translator.Get, translator.UpdateYoozooGameplayRTSProtoMarchType);
				translator.RegisterPushAndGetAndUpdate<Yoozoo.Gameplay.RTS.Proto.NormalAttackType>(translator.PushYoozooGameplayRTSProtoNormalAttackType, translator.Get, translator.UpdateYoozooGameplayRTSProtoNormalAttackType);
			
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.EffectElement>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapAssembly>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapMonsterL2>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapMonsterL3>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.MapUnit>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.RtsMapMonster>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.SCRoundFight>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.TroopFightInfo>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.TroopMarch>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.TroopMarchL2>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.TroopMarchL3>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.RTS.Proto.TroopTarget>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomEventConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoleConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoleConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventTreeConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiSpecialConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiSpecialConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiGoodsConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiEventPointConfig>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomDatas>(translator.Get);
				translator.RegisterCaster<Yoozoo.Gameplay.City.CityRealAiRoomData>(translator.Get);
			}
        }
        
        static IniterAdderUnityEngineVector2 s_IniterAdderUnityEngineVector2_dumb_obj = new IniterAdderUnityEngineVector2();
        static IniterAdderUnityEngineVector2 IniterAdderUnityEngineVector2_dumb_obj {get{return s_IniterAdderUnityEngineVector2_dumb_obj;}}
        
        
        int UnityEngineVector2_TypeID = -1;
        public void PushUnityEngineVector2(RealStatePtr L, UnityEngine.Vector2 val)
        {
            if (UnityEngineVector2_TypeID == -1)
            {
			    bool is_first;
                UnityEngineVector2_TypeID = getTypeId(L, typeof(UnityEngine.Vector2), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 8, UnityEngineVector2_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Vector2 ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Vector2 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector2_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector2");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Vector2");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Vector2)objectCasters.GetCaster(typeof(UnityEngine.Vector2))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineVector2(RealStatePtr L, int index, UnityEngine.Vector2 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector2_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector2");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Vector2 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineVector3_TypeID = -1;
        public void PushUnityEngineVector3(RealStatePtr L, UnityEngine.Vector3 val)
        {
            if (UnityEngineVector3_TypeID == -1)
            {
			    bool is_first;
                UnityEngineVector3_TypeID = getTypeId(L, typeof(UnityEngine.Vector3), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 12, UnityEngineVector3_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Vector3 ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Vector3 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector3_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector3");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Vector3");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Vector3)objectCasters.GetCaster(typeof(UnityEngine.Vector3))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineVector3(RealStatePtr L, int index, UnityEngine.Vector3 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector3_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector3");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Vector3 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineVector4_TypeID = -1;
        public void PushUnityEngineVector4(RealStatePtr L, UnityEngine.Vector4 val)
        {
            if (UnityEngineVector4_TypeID == -1)
            {
			    bool is_first;
                UnityEngineVector4_TypeID = getTypeId(L, typeof(UnityEngine.Vector4), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 16, UnityEngineVector4_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Vector4 ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Vector4 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector4_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector4");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Vector4");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Vector4)objectCasters.GetCaster(typeof(UnityEngine.Vector4))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineVector4(RealStatePtr L, int index, UnityEngine.Vector4 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineVector4_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Vector4");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Vector4 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineColor_TypeID = -1;
        public void PushUnityEngineColor(RealStatePtr L, UnityEngine.Color val)
        {
            if (UnityEngineColor_TypeID == -1)
            {
			    bool is_first;
                UnityEngineColor_TypeID = getTypeId(L, typeof(UnityEngine.Color), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 16, UnityEngineColor_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Color ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Color val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineColor_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Color");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Color");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Color)objectCasters.GetCaster(typeof(UnityEngine.Color))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineColor(RealStatePtr L, int index, UnityEngine.Color val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineColor_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Color");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Color ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineQuaternion_TypeID = -1;
        public void PushUnityEngineQuaternion(RealStatePtr L, UnityEngine.Quaternion val)
        {
            if (UnityEngineQuaternion_TypeID == -1)
            {
			    bool is_first;
                UnityEngineQuaternion_TypeID = getTypeId(L, typeof(UnityEngine.Quaternion), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 16, UnityEngineQuaternion_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Quaternion ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Quaternion val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineQuaternion_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Quaternion");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Quaternion");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Quaternion)objectCasters.GetCaster(typeof(UnityEngine.Quaternion))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineQuaternion(RealStatePtr L, int index, UnityEngine.Quaternion val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineQuaternion_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Quaternion");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Quaternion ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRay_TypeID = -1;
        public void PushUnityEngineRay(RealStatePtr L, UnityEngine.Ray val)
        {
            if (UnityEngineRay_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRay_TypeID = getTypeId(L, typeof(UnityEngine.Ray), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 24, UnityEngineRay_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Ray ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Ray val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRay_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Ray");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Ray");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Ray)objectCasters.GetCaster(typeof(UnityEngine.Ray))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRay(RealStatePtr L, int index, UnityEngine.Ray val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRay_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Ray");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Ray ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineBounds_TypeID = -1;
        public void PushUnityEngineBounds(RealStatePtr L, UnityEngine.Bounds val)
        {
            if (UnityEngineBounds_TypeID == -1)
            {
			    bool is_first;
                UnityEngineBounds_TypeID = getTypeId(L, typeof(UnityEngine.Bounds), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 24, UnityEngineBounds_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Bounds ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Bounds val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineBounds_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Bounds");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Bounds");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Bounds)objectCasters.GetCaster(typeof(UnityEngine.Bounds))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineBounds(RealStatePtr L, int index, UnityEngine.Bounds val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineBounds_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Bounds");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Bounds ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRay2D_TypeID = -1;
        public void PushUnityEngineRay2D(RealStatePtr L, UnityEngine.Ray2D val)
        {
            if (UnityEngineRay2D_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRay2D_TypeID = getTypeId(L, typeof(UnityEngine.Ray2D), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 16, UnityEngineRay2D_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for UnityEngine.Ray2D ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Ray2D val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRay2D_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Ray2D");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for UnityEngine.Ray2D");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (UnityEngine.Ray2D)objectCasters.GetCaster(typeof(UnityEngine.Ray2D))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRay2D(RealStatePtr L, int index, UnityEngine.Ray2D val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRay2D_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Ray2D");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for UnityEngine.Ray2D ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSUpdateSoldierStruct_TypeID = -1;
        public void PushYoozooGameplayRTSUpdateSoldierStruct(RealStatePtr L, Yoozoo.Gameplay.RTS.UpdateSoldierStruct val)
        {
            if (YoozooGameplayRTSUpdateSoldierStruct_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSUpdateSoldierStruct_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.UpdateSoldierStruct), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSUpdateSoldierStruct_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.UpdateSoldierStruct ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.UpdateSoldierStruct val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSUpdateSoldierStruct_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.UpdateSoldierStruct");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.UpdateSoldierStruct");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.UpdateSoldierStruct)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.UpdateSoldierStruct))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSUpdateSoldierStruct(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.UpdateSoldierStruct val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSUpdateSoldierStruct_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.UpdateSoldierStruct");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.UpdateSoldierStruct ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSEMarchStatus_TypeID = -1;
		int YoozooGameplayRTSEMarchStatus_EnumRef = -1;
        
        public void PushYoozooGameplayRTSEMarchStatus(RealStatePtr L, Yoozoo.Gameplay.RTS.EMarchStatus val)
        {
            if (YoozooGameplayRTSEMarchStatus_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSEMarchStatus_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.EMarchStatus), out is_first);
				
				if (YoozooGameplayRTSEMarchStatus_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.RTS.EMarchStatus));
				    YoozooGameplayRTSEMarchStatus_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayRTSEMarchStatus_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayRTSEMarchStatus_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.EMarchStatus ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayRTSEMarchStatus_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.EMarchStatus val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSEMarchStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.EMarchStatus");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.EMarchStatus");
                }
				val = (Yoozoo.Gameplay.RTS.EMarchStatus)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.RTS.EMarchStatus)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.EMarchStatus))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSEMarchStatus(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.EMarchStatus val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSEMarchStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.EMarchStatus");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.EMarchStatus ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoCastSkill_TypeID = -1;
        public void PushYoozooGameplayRTSProtoCastSkill(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.CastSkill val)
        {
            if (YoozooGameplayRTSProtoCastSkill_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoCastSkill_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.CastSkill), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSProtoCastSkill_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.CastSkill ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.CastSkill val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCastSkill_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.CastSkill");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.CastSkill");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.CastSkill)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.CastSkill))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoCastSkill(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.CastSkill val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCastSkill_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.CastSkill");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.CastSkill ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoCoordinate_TypeID = -1;
        public void PushYoozooGameplayRTSProtoCoordinate(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.Coordinate val)
        {
            if (YoozooGameplayRTSProtoCoordinate_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoCoordinate_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.Coordinate), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 8, YoozooGameplayRTSProtoCoordinate_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.Coordinate ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.Coordinate val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCoordinate_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.Coordinate");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.Coordinate");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.Coordinate)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.Coordinate))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoCoordinate(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.Coordinate val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCoordinate_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.Coordinate");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.Coordinate ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoCrossingGate_TypeID = -1;
        public void PushYoozooGameplayRTSProtoCrossingGate(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.CrossingGate val)
        {
            if (YoozooGameplayRTSProtoCrossingGate_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoCrossingGate_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.CrossingGate), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 24, YoozooGameplayRTSProtoCrossingGate_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.CrossingGate ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.CrossingGate val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCrossingGate_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.CrossingGate");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.CrossingGate");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.CrossingGate)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.CrossingGate))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoCrossingGate(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.CrossingGate val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoCrossingGate_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.CrossingGate");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.CrossingGate ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoSoldierLocation_TypeID = -1;
        public void PushYoozooGameplayRTSProtoSoldierLocation(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.SoldierLocation val)
        {
            if (YoozooGameplayRTSProtoSoldierLocation_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoSoldierLocation_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.SoldierLocation), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSProtoSoldierLocation_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.SoldierLocation ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.SoldierLocation val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoSoldierLocation_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.SoldierLocation");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.SoldierLocation");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.SoldierLocation)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.SoldierLocation))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoSoldierLocation(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.SoldierLocation val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoSoldierLocation_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.SoldierLocation");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.SoldierLocation ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoElementResult_TypeID = -1;
        public void PushYoozooGameplayRTSProtoElementResult(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.ElementResult val)
        {
            if (YoozooGameplayRTSProtoElementResult_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoElementResult_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.ElementResult), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSProtoElementResult_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.ElementResult ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.ElementResult val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoElementResult_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.ElementResult");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.ElementResult");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.ElementResult)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.ElementResult))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoElementResult(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.ElementResult val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoElementResult_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.ElementResult");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.ElementResult ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID = -1;
        public void PushYoozooGameplayRTSProtoMapPoliceOfficeL2(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2 val)
        {
            if (YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 8, YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2 ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoMapPoliceOfficeL2(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMapPoliceOfficeL2_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID = -1;
        public void PushYoozooGameplayRTSProtoMapPoliceOfficeL4(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4 val)
        {
            if (YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4 ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoMapPoliceOfficeL4(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMapPoliceOfficeL4_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoTargetCoordinateType_TypeID = -1;
		int YoozooGameplayRTSProtoTargetCoordinateType_EnumRef = -1;
        
        public void PushYoozooGameplayRTSProtoTargetCoordinateType(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType val)
        {
            if (YoozooGameplayRTSProtoTargetCoordinateType_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoTargetCoordinateType_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType), out is_first);
				
				if (YoozooGameplayRTSProtoTargetCoordinateType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType));
				    YoozooGameplayRTSProtoTargetCoordinateType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayRTSProtoTargetCoordinateType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayRTSProtoTargetCoordinateType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayRTSProtoTargetCoordinateType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoTargetCoordinateType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType");
                }
				val = (Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoTargetCoordinateType(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoTargetCoordinateType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoTroopsSoldier_TypeID = -1;
        public void PushYoozooGameplayRTSProtoTroopsSoldier(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.TroopsSoldier val)
        {
            if (YoozooGameplayRTSProtoTroopsSoldier_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoTroopsSoldier_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.TroopsSoldier), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 20, YoozooGameplayRTSProtoTroopsSoldier_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.TroopsSoldier ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopsSoldier val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoTroopsSoldier_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.TroopsSoldier");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.TroopsSoldier");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.TroopsSoldier)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.TroopsSoldier))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoTroopsSoldier(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.TroopsSoldier val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoTroopsSoldier_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.TroopsSoldier");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.TroopsSoldier ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID = -1;
        public void PushYoozooGameplayCityCityRealAiSpecialRecoverConfig(RealStatePtr L, Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig val)
        {
            if (YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 8, YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayCityCityRealAiSpecialRecoverConfig(RealStatePtr L, int index, Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayCityCityRealAiSpecialRecoverConfig_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayCityGlobalVariablesConfig_TypeID = -1;
        public void PushYoozooGameplayCityGlobalVariablesConfig(RealStatePtr L, Yoozoo.Gameplay.City.GlobalVariablesConfig val)
        {
            if (YoozooGameplayCityGlobalVariablesConfig_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayCityGlobalVariablesConfig_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.City.GlobalVariablesConfig), out is_first);
				
            }
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 88, YoozooGameplayCityGlobalVariablesConfig_TypeID);
            if (!CopyByValue.Pack(buff, 0, val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.City.GlobalVariablesConfig ,value="+val);
            }
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.GlobalVariablesConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayCityGlobalVariablesConfig_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.City.GlobalVariablesConfig");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);if (!CopyByValue.UnPack(buff, 0, out val))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.City.GlobalVariablesConfig");
                }
            }
			else if (type ==LuaTypes.LUA_TTABLE)
			{
			    CopyByValue.UnPack(this, L, index, out val);
			}
            else
            {
                val = (Yoozoo.Gameplay.City.GlobalVariablesConfig)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.City.GlobalVariablesConfig))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayCityGlobalVariablesConfig(RealStatePtr L, int index, Yoozoo.Gameplay.City.GlobalVariablesConfig val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayCityGlobalVariablesConfig_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.City.GlobalVariablesConfig");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.City.GlobalVariablesConfig ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID = -1;
		int YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_EnumRef = -1;
        
        public void PushYoozooManagersResourceManagerV2FrameworkResourceHasAssetResult(RealStatePtr L, Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult val)
        {
            if (YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID == -1)
            {
			    bool is_first;
                YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID = getTypeId(L, typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult), out is_first);
				
				if (YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult));
				    YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult");
                }
				val = (Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult)e;
                
            }
            else
            {
                val = (Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult)objectCasters.GetCaster(typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult))(L, index, null);
            }
        }
		
        public void UpdateYoozooManagersResourceManagerV2FrameworkResourceHasAssetResult(RealStatePtr L, int index, Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagersResourceManagerV2FrameworkResourceHasAssetResult_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int BunkerHitPointType_TypeID = -1;
		int BunkerHitPointType_EnumRef = -1;
        
        public void PushBunkerHitPointType(RealStatePtr L, BunkerHitPointType val)
        {
            if (BunkerHitPointType_TypeID == -1)
            {
			    bool is_first;
                BunkerHitPointType_TypeID = getTypeId(L, typeof(BunkerHitPointType), out is_first);
				
				if (BunkerHitPointType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(BunkerHitPointType));
				    BunkerHitPointType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, BunkerHitPointType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, BunkerHitPointType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for BunkerHitPointType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, BunkerHitPointType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out BunkerHitPointType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != BunkerHitPointType_TypeID)
				{
				    throw new Exception("invalid userdata for BunkerHitPointType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for BunkerHitPointType");
                }
				val = (BunkerHitPointType)e;
                
            }
            else
            {
                val = (BunkerHitPointType)objectCasters.GetCaster(typeof(BunkerHitPointType))(L, index, null);
            }
        }
		
        public void UpdateBunkerHitPointType(RealStatePtr L, int index, BunkerHitPointType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != BunkerHitPointType_TypeID)
				{
				    throw new Exception("invalid userdata for BunkerHitPointType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for BunkerHitPointType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int DGTweeningEase_TypeID = -1;
		int DGTweeningEase_EnumRef = -1;
        
        public void PushDGTweeningEase(RealStatePtr L, DG.Tweening.Ease val)
        {
            if (DGTweeningEase_TypeID == -1)
            {
			    bool is_first;
                DGTweeningEase_TypeID = getTypeId(L, typeof(DG.Tweening.Ease), out is_first);
				
				if (DGTweeningEase_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(DG.Tweening.Ease));
				    DGTweeningEase_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DGTweeningEase_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DGTweeningEase_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for DG.Tweening.Ease ,value="+val);
            }
			
			LuaAPI.lua_getref(L, DGTweeningEase_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out DG.Tweening.Ease val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningEase_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.Ease");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for DG.Tweening.Ease");
                }
				val = (DG.Tweening.Ease)e;
                
            }
            else
            {
                val = (DG.Tweening.Ease)objectCasters.GetCaster(typeof(DG.Tweening.Ease))(L, index, null);
            }
        }
		
        public void UpdateDGTweeningEase(RealStatePtr L, int index, DG.Tweening.Ease val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningEase_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.Ease");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for DG.Tweening.Ease ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int DGTweeningLoopType_TypeID = -1;
		int DGTweeningLoopType_EnumRef = -1;
        
        public void PushDGTweeningLoopType(RealStatePtr L, DG.Tweening.LoopType val)
        {
            if (DGTweeningLoopType_TypeID == -1)
            {
			    bool is_first;
                DGTweeningLoopType_TypeID = getTypeId(L, typeof(DG.Tweening.LoopType), out is_first);
				
				if (DGTweeningLoopType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(DG.Tweening.LoopType));
				    DGTweeningLoopType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DGTweeningLoopType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DGTweeningLoopType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for DG.Tweening.LoopType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, DGTweeningLoopType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out DG.Tweening.LoopType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningLoopType_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.LoopType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for DG.Tweening.LoopType");
                }
				val = (DG.Tweening.LoopType)e;
                
            }
            else
            {
                val = (DG.Tweening.LoopType)objectCasters.GetCaster(typeof(DG.Tweening.LoopType))(L, index, null);
            }
        }
		
        public void UpdateDGTweeningLoopType(RealStatePtr L, int index, DG.Tweening.LoopType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningLoopType_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.LoopType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for DG.Tweening.LoopType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int DGTweeningPathMode_TypeID = -1;
		int DGTweeningPathMode_EnumRef = -1;
        
        public void PushDGTweeningPathMode(RealStatePtr L, DG.Tweening.PathMode val)
        {
            if (DGTweeningPathMode_TypeID == -1)
            {
			    bool is_first;
                DGTweeningPathMode_TypeID = getTypeId(L, typeof(DG.Tweening.PathMode), out is_first);
				
				if (DGTweeningPathMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(DG.Tweening.PathMode));
				    DGTweeningPathMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DGTweeningPathMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DGTweeningPathMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for DG.Tweening.PathMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, DGTweeningPathMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out DG.Tweening.PathMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningPathMode_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.PathMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for DG.Tweening.PathMode");
                }
				val = (DG.Tweening.PathMode)e;
                
            }
            else
            {
                val = (DG.Tweening.PathMode)objectCasters.GetCaster(typeof(DG.Tweening.PathMode))(L, index, null);
            }
        }
		
        public void UpdateDGTweeningPathMode(RealStatePtr L, int index, DG.Tweening.PathMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningPathMode_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.PathMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for DG.Tweening.PathMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int DGTweeningPathType_TypeID = -1;
		int DGTweeningPathType_EnumRef = -1;
        
        public void PushDGTweeningPathType(RealStatePtr L, DG.Tweening.PathType val)
        {
            if (DGTweeningPathType_TypeID == -1)
            {
			    bool is_first;
                DGTweeningPathType_TypeID = getTypeId(L, typeof(DG.Tweening.PathType), out is_first);
				
				if (DGTweeningPathType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(DG.Tweening.PathType));
				    DGTweeningPathType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DGTweeningPathType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DGTweeningPathType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for DG.Tweening.PathType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, DGTweeningPathType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out DG.Tweening.PathType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningPathType_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.PathType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for DG.Tweening.PathType");
                }
				val = (DG.Tweening.PathType)e;
                
            }
            else
            {
                val = (DG.Tweening.PathType)objectCasters.GetCaster(typeof(DG.Tweening.PathType))(L, index, null);
            }
        }
		
        public void UpdateDGTweeningPathType(RealStatePtr L, int index, DG.Tweening.PathType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningPathType_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.PathType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for DG.Tweening.PathType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int DGTweeningRotateMode_TypeID = -1;
		int DGTweeningRotateMode_EnumRef = -1;
        
        public void PushDGTweeningRotateMode(RealStatePtr L, DG.Tweening.RotateMode val)
        {
            if (DGTweeningRotateMode_TypeID == -1)
            {
			    bool is_first;
                DGTweeningRotateMode_TypeID = getTypeId(L, typeof(DG.Tweening.RotateMode), out is_first);
				
				if (DGTweeningRotateMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(DG.Tweening.RotateMode));
				    DGTweeningRotateMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DGTweeningRotateMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DGTweeningRotateMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for DG.Tweening.RotateMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, DGTweeningRotateMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out DG.Tweening.RotateMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningRotateMode_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.RotateMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for DG.Tweening.RotateMode");
                }
				val = (DG.Tweening.RotateMode)e;
                
            }
            else
            {
                val = (DG.Tweening.RotateMode)objectCasters.GetCaster(typeof(DG.Tweening.RotateMode))(L, index, null);
            }
        }
		
        public void UpdateDGTweeningRotateMode(RealStatePtr L, int index, DG.Tweening.RotateMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != DGTweeningRotateMode_TypeID)
				{
				    throw new Exception("invalid userdata for DG.Tweening.RotateMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for DG.Tweening.RotateMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEnginePrimitiveType_TypeID = -1;
		int UnityEnginePrimitiveType_EnumRef = -1;
        
        public void PushUnityEnginePrimitiveType(RealStatePtr L, UnityEngine.PrimitiveType val)
        {
            if (UnityEnginePrimitiveType_TypeID == -1)
            {
			    bool is_first;
                UnityEnginePrimitiveType_TypeID = getTypeId(L, typeof(UnityEngine.PrimitiveType), out is_first);
				
				if (UnityEnginePrimitiveType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.PrimitiveType));
				    UnityEnginePrimitiveType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEnginePrimitiveType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEnginePrimitiveType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.PrimitiveType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEnginePrimitiveType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.PrimitiveType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEnginePrimitiveType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.PrimitiveType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.PrimitiveType");
                }
				val = (UnityEngine.PrimitiveType)e;
                
            }
            else
            {
                val = (UnityEngine.PrimitiveType)objectCasters.GetCaster(typeof(UnityEngine.PrimitiveType))(L, index, null);
            }
        }
		
        public void UpdateUnityEnginePrimitiveType(RealStatePtr L, int index, UnityEngine.PrimitiveType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEnginePrimitiveType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.PrimitiveType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.PrimitiveType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineSimulationMode_TypeID = -1;
		int UnityEngineSimulationMode_EnumRef = -1;
        
        public void PushUnityEngineSimulationMode(RealStatePtr L, UnityEngine.SimulationMode val)
        {
            if (UnityEngineSimulationMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineSimulationMode_TypeID = getTypeId(L, typeof(UnityEngine.SimulationMode), out is_first);
				
				if (UnityEngineSimulationMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.SimulationMode));
				    UnityEngineSimulationMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineSimulationMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineSimulationMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.SimulationMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineSimulationMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.SimulationMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineSimulationMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.SimulationMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.SimulationMode");
                }
				val = (UnityEngine.SimulationMode)e;
                
            }
            else
            {
                val = (UnityEngine.SimulationMode)objectCasters.GetCaster(typeof(UnityEngine.SimulationMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineSimulationMode(RealStatePtr L, int index, UnityEngine.SimulationMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineSimulationMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.SimulationMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.SimulationMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRuntimePlatform_TypeID = -1;
		int UnityEngineRuntimePlatform_EnumRef = -1;
        
        public void PushUnityEngineRuntimePlatform(RealStatePtr L, UnityEngine.RuntimePlatform val)
        {
            if (UnityEngineRuntimePlatform_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRuntimePlatform_TypeID = getTypeId(L, typeof(UnityEngine.RuntimePlatform), out is_first);
				
				if (UnityEngineRuntimePlatform_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.RuntimePlatform));
				    UnityEngineRuntimePlatform_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRuntimePlatform_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRuntimePlatform_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.RuntimePlatform ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRuntimePlatform_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.RuntimePlatform val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRuntimePlatform_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RuntimePlatform");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.RuntimePlatform");
                }
				val = (UnityEngine.RuntimePlatform)e;
                
            }
            else
            {
                val = (UnityEngine.RuntimePlatform)objectCasters.GetCaster(typeof(UnityEngine.RuntimePlatform))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRuntimePlatform(RealStatePtr L, int index, UnityEngine.RuntimePlatform val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRuntimePlatform_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RuntimePlatform");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.RuntimePlatform ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineTextureFormat_TypeID = -1;
		int UnityEngineTextureFormat_EnumRef = -1;
        
        public void PushUnityEngineTextureFormat(RealStatePtr L, UnityEngine.TextureFormat val)
        {
            if (UnityEngineTextureFormat_TypeID == -1)
            {
			    bool is_first;
                UnityEngineTextureFormat_TypeID = getTypeId(L, typeof(UnityEngine.TextureFormat), out is_first);
				
				if (UnityEngineTextureFormat_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.TextureFormat));
				    UnityEngineTextureFormat_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineTextureFormat_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineTextureFormat_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.TextureFormat ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineTextureFormat_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.TextureFormat val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineTextureFormat_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.TextureFormat");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.TextureFormat");
                }
				val = (UnityEngine.TextureFormat)e;
                
            }
            else
            {
                val = (UnityEngine.TextureFormat)objectCasters.GetCaster(typeof(UnityEngine.TextureFormat))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineTextureFormat(RealStatePtr L, int index, UnityEngine.TextureFormat val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineTextureFormat_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.TextureFormat");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.TextureFormat ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRenderMode_TypeID = -1;
		int UnityEngineRenderMode_EnumRef = -1;
        
        public void PushUnityEngineRenderMode(RealStatePtr L, UnityEngine.RenderMode val)
        {
            if (UnityEngineRenderMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRenderMode_TypeID = getTypeId(L, typeof(UnityEngine.RenderMode), out is_first);
				
				if (UnityEngineRenderMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.RenderMode));
				    UnityEngineRenderMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRenderMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRenderMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.RenderMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRenderMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.RenderMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RenderMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.RenderMode");
                }
				val = (UnityEngine.RenderMode)e;
                
            }
            else
            {
                val = (UnityEngine.RenderMode)objectCasters.GetCaster(typeof(UnityEngine.RenderMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRenderMode(RealStatePtr L, int index, UnityEngine.RenderMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RenderMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.RenderMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineCameraClearFlags_TypeID = -1;
		int UnityEngineCameraClearFlags_EnumRef = -1;
        
        public void PushUnityEngineCameraClearFlags(RealStatePtr L, UnityEngine.CameraClearFlags val)
        {
            if (UnityEngineCameraClearFlags_TypeID == -1)
            {
			    bool is_first;
                UnityEngineCameraClearFlags_TypeID = getTypeId(L, typeof(UnityEngine.CameraClearFlags), out is_first);
				
				if (UnityEngineCameraClearFlags_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.CameraClearFlags));
				    UnityEngineCameraClearFlags_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineCameraClearFlags_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineCameraClearFlags_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.CameraClearFlags ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineCameraClearFlags_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.CameraClearFlags val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraClearFlags_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.CameraClearFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.CameraClearFlags");
                }
				val = (UnityEngine.CameraClearFlags)e;
                
            }
            else
            {
                val = (UnityEngine.CameraClearFlags)objectCasters.GetCaster(typeof(UnityEngine.CameraClearFlags))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineCameraClearFlags(RealStatePtr L, int index, UnityEngine.CameraClearFlags val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraClearFlags_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.CameraClearFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.CameraClearFlags ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineLightmapsMode_TypeID = -1;
		int UnityEngineLightmapsMode_EnumRef = -1;
        
        public void PushUnityEngineLightmapsMode(RealStatePtr L, UnityEngine.LightmapsMode val)
        {
            if (UnityEngineLightmapsMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineLightmapsMode_TypeID = getTypeId(L, typeof(UnityEngine.LightmapsMode), out is_first);
				
				if (UnityEngineLightmapsMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.LightmapsMode));
				    UnityEngineLightmapsMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineLightmapsMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineLightmapsMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.LightmapsMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineLightmapsMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.LightmapsMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineLightmapsMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.LightmapsMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.LightmapsMode");
                }
				val = (UnityEngine.LightmapsMode)e;
                
            }
            else
            {
                val = (UnityEngine.LightmapsMode)objectCasters.GetCaster(typeof(UnityEngine.LightmapsMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineLightmapsMode(RealStatePtr L, int index, UnityEngine.LightmapsMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineLightmapsMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.LightmapsMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.LightmapsMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineFogMode_TypeID = -1;
		int UnityEngineFogMode_EnumRef = -1;
        
        public void PushUnityEngineFogMode(RealStatePtr L, UnityEngine.FogMode val)
        {
            if (UnityEngineFogMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineFogMode_TypeID = getTypeId(L, typeof(UnityEngine.FogMode), out is_first);
				
				if (UnityEngineFogMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.FogMode));
				    UnityEngineFogMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineFogMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineFogMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.FogMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineFogMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.FogMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineFogMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.FogMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.FogMode");
                }
				val = (UnityEngine.FogMode)e;
                
            }
            else
            {
                val = (UnityEngine.FogMode)objectCasters.GetCaster(typeof(UnityEngine.FogMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineFogMode(RealStatePtr L, int index, UnityEngine.FogMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineFogMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.FogMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.FogMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRenderingDefaultReflectionMode_TypeID = -1;
		int UnityEngineRenderingDefaultReflectionMode_EnumRef = -1;
        
        public void PushUnityEngineRenderingDefaultReflectionMode(RealStatePtr L, UnityEngine.Rendering.DefaultReflectionMode val)
        {
            if (UnityEngineRenderingDefaultReflectionMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRenderingDefaultReflectionMode_TypeID = getTypeId(L, typeof(UnityEngine.Rendering.DefaultReflectionMode), out is_first);
				
				if (UnityEngineRenderingDefaultReflectionMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Rendering.DefaultReflectionMode));
				    UnityEngineRenderingDefaultReflectionMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRenderingDefaultReflectionMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRenderingDefaultReflectionMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Rendering.DefaultReflectionMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRenderingDefaultReflectionMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Rendering.DefaultReflectionMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingDefaultReflectionMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.DefaultReflectionMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Rendering.DefaultReflectionMode");
                }
				val = (UnityEngine.Rendering.DefaultReflectionMode)e;
                
            }
            else
            {
                val = (UnityEngine.Rendering.DefaultReflectionMode)objectCasters.GetCaster(typeof(UnityEngine.Rendering.DefaultReflectionMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRenderingDefaultReflectionMode(RealStatePtr L, int index, UnityEngine.Rendering.DefaultReflectionMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingDefaultReflectionMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.DefaultReflectionMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Rendering.DefaultReflectionMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRenderingAmbientMode_TypeID = -1;
		int UnityEngineRenderingAmbientMode_EnumRef = -1;
        
        public void PushUnityEngineRenderingAmbientMode(RealStatePtr L, UnityEngine.Rendering.AmbientMode val)
        {
            if (UnityEngineRenderingAmbientMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRenderingAmbientMode_TypeID = getTypeId(L, typeof(UnityEngine.Rendering.AmbientMode), out is_first);
				
				if (UnityEngineRenderingAmbientMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Rendering.AmbientMode));
				    UnityEngineRenderingAmbientMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRenderingAmbientMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRenderingAmbientMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Rendering.AmbientMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRenderingAmbientMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Rendering.AmbientMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingAmbientMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.AmbientMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Rendering.AmbientMode");
                }
				val = (UnityEngine.Rendering.AmbientMode)e;
                
            }
            else
            {
                val = (UnityEngine.Rendering.AmbientMode)objectCasters.GetCaster(typeof(UnityEngine.Rendering.AmbientMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRenderingAmbientMode(RealStatePtr L, int index, UnityEngine.Rendering.AmbientMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingAmbientMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.AmbientMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Rendering.AmbientMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRenderingReflectionProbeMode_TypeID = -1;
		int UnityEngineRenderingReflectionProbeMode_EnumRef = -1;
        
        public void PushUnityEngineRenderingReflectionProbeMode(RealStatePtr L, UnityEngine.Rendering.ReflectionProbeMode val)
        {
            if (UnityEngineRenderingReflectionProbeMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRenderingReflectionProbeMode_TypeID = getTypeId(L, typeof(UnityEngine.Rendering.ReflectionProbeMode), out is_first);
				
				if (UnityEngineRenderingReflectionProbeMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Rendering.ReflectionProbeMode));
				    UnityEngineRenderingReflectionProbeMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRenderingReflectionProbeMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRenderingReflectionProbeMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Rendering.ReflectionProbeMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRenderingReflectionProbeMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Rendering.ReflectionProbeMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingReflectionProbeMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.ReflectionProbeMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Rendering.ReflectionProbeMode");
                }
				val = (UnityEngine.Rendering.ReflectionProbeMode)e;
                
            }
            else
            {
                val = (UnityEngine.Rendering.ReflectionProbeMode)objectCasters.GetCaster(typeof(UnityEngine.Rendering.ReflectionProbeMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRenderingReflectionProbeMode(RealStatePtr L, int index, UnityEngine.Rendering.ReflectionProbeMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRenderingReflectionProbeMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Rendering.ReflectionProbeMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Rendering.ReflectionProbeMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooMarsGotQualityEnum_TypeID = -1;
		int YoozooMarsGotQualityEnum_EnumRef = -1;
        
        public void PushYoozooMarsGotQualityEnum(RealStatePtr L, Yoozoo.Mars.Got.QualityEnum val)
        {
            if (YoozooMarsGotQualityEnum_TypeID == -1)
            {
			    bool is_first;
                YoozooMarsGotQualityEnum_TypeID = getTypeId(L, typeof(Yoozoo.Mars.Got.QualityEnum), out is_first);
				
				if (YoozooMarsGotQualityEnum_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Mars.Got.QualityEnum));
				    YoozooMarsGotQualityEnum_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooMarsGotQualityEnum_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooMarsGotQualityEnum_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Mars.Got.QualityEnum ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooMarsGotQualityEnum_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Mars.Got.QualityEnum val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooMarsGotQualityEnum_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Mars.Got.QualityEnum");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Mars.Got.QualityEnum");
                }
				val = (Yoozoo.Mars.Got.QualityEnum)e;
                
            }
            else
            {
                val = (Yoozoo.Mars.Got.QualityEnum)objectCasters.GetCaster(typeof(Yoozoo.Mars.Got.QualityEnum))(L, index, null);
            }
        }
		
        public void UpdateYoozooMarsGotQualityEnum(RealStatePtr L, int index, Yoozoo.Mars.Got.QualityEnum val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooMarsGotQualityEnum_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Mars.Got.QualityEnum");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Mars.Got.QualityEnum ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID = -1;
		int YoozooModulesDownloadDownloadWhilePlayingManagerStatus_EnumRef = -1;
        
        public void PushYoozooModulesDownloadDownloadWhilePlayingManagerStatus(RealStatePtr L, Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status val)
        {
            if (YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID == -1)
            {
			    bool is_first;
                YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID = getTypeId(L, typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status), out is_first);
				
				if (YoozooModulesDownloadDownloadWhilePlayingManagerStatus_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status));
				    YoozooModulesDownloadDownloadWhilePlayingManagerStatus_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooModulesDownloadDownloadWhilePlayingManagerStatus_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooModulesDownloadDownloadWhilePlayingManagerStatus_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status");
                }
				val = (Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status)e;
                
            }
            else
            {
                val = (Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status)objectCasters.GetCaster(typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status))(L, index, null);
            }
        }
		
        public void UpdateYoozooModulesDownloadDownloadWhilePlayingManagerStatus(RealStatePtr L, int index, Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadDownloadWhilePlayingManagerStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooModulesDownloadPreDownloadManagerStatus_TypeID = -1;
		int YoozooModulesDownloadPreDownloadManagerStatus_EnumRef = -1;
        
        public void PushYoozooModulesDownloadPreDownloadManagerStatus(RealStatePtr L, Yoozoo.Modules.Download.PreDownloadManager.Status val)
        {
            if (YoozooModulesDownloadPreDownloadManagerStatus_TypeID == -1)
            {
			    bool is_first;
                YoozooModulesDownloadPreDownloadManagerStatus_TypeID = getTypeId(L, typeof(Yoozoo.Modules.Download.PreDownloadManager.Status), out is_first);
				
				if (YoozooModulesDownloadPreDownloadManagerStatus_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Modules.Download.PreDownloadManager.Status));
				    YoozooModulesDownloadPreDownloadManagerStatus_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooModulesDownloadPreDownloadManagerStatus_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooModulesDownloadPreDownloadManagerStatus_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Modules.Download.PreDownloadManager.Status ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooModulesDownloadPreDownloadManagerStatus_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Modules.Download.PreDownloadManager.Status val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadPreDownloadManagerStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.PreDownloadManager.Status");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Modules.Download.PreDownloadManager.Status");
                }
				val = (Yoozoo.Modules.Download.PreDownloadManager.Status)e;
                
            }
            else
            {
                val = (Yoozoo.Modules.Download.PreDownloadManager.Status)objectCasters.GetCaster(typeof(Yoozoo.Modules.Download.PreDownloadManager.Status))(L, index, null);
            }
        }
		
        public void UpdateYoozooModulesDownloadPreDownloadManagerStatus(RealStatePtr L, int index, Yoozoo.Modules.Download.PreDownloadManager.Status val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadPreDownloadManagerStatus_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.PreDownloadManager.Status");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Modules.Download.PreDownloadManager.Status ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID = -1;
		int YoozooManagersResourceManagerV2FrameworkResourceResourceMode_EnumRef = -1;
        
        public void PushYoozooManagersResourceManagerV2FrameworkResourceResourceMode(RealStatePtr L, Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode val)
        {
            if (YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID == -1)
            {
			    bool is_first;
                YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID = getTypeId(L, typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode), out is_first);
				
				if (YoozooManagersResourceManagerV2FrameworkResourceResourceMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode));
				    YoozooManagersResourceManagerV2FrameworkResourceResourceMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooManagersResourceManagerV2FrameworkResourceResourceMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooManagersResourceManagerV2FrameworkResourceResourceMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode");
                }
				val = (Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode)e;
                
            }
            else
            {
                val = (Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode)objectCasters.GetCaster(typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode))(L, index, null);
            }
        }
		
        public void UpdateYoozooManagersResourceManagerV2FrameworkResourceResourceMode(RealStatePtr L, int index, Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagersResourceManagerV2FrameworkResourceResourceMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayLibertyAIAnimationState_TypeID = -1;
		int YoozooGameplayLibertyAIAnimationState_EnumRef = -1;
        
        public void PushYoozooGameplayLibertyAIAnimationState(RealStatePtr L, Yoozoo.Gameplay.Liberty.AI.AnimationState val)
        {
            if (YoozooGameplayLibertyAIAnimationState_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayLibertyAIAnimationState_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.Liberty.AI.AnimationState), out is_first);
				
				if (YoozooGameplayLibertyAIAnimationState_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.Liberty.AI.AnimationState));
				    YoozooGameplayLibertyAIAnimationState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayLibertyAIAnimationState_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayLibertyAIAnimationState_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.Liberty.AI.AnimationState ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayLibertyAIAnimationState_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.Liberty.AI.AnimationState val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyAIAnimationState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.AI.AnimationState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.Liberty.AI.AnimationState");
                }
				val = (Yoozoo.Gameplay.Liberty.AI.AnimationState)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.Liberty.AI.AnimationState)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.Liberty.AI.AnimationState))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayLibertyAIAnimationState(RealStatePtr L, int index, Yoozoo.Gameplay.Liberty.AI.AnimationState val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyAIAnimationState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.AI.AnimationState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.Liberty.AI.AnimationState ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayLibertyAIBattleState_TypeID = -1;
		int YoozooGameplayLibertyAIBattleState_EnumRef = -1;
        
        public void PushYoozooGameplayLibertyAIBattleState(RealStatePtr L, Yoozoo.Gameplay.Liberty.AI.BattleState val)
        {
            if (YoozooGameplayLibertyAIBattleState_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayLibertyAIBattleState_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.Liberty.AI.BattleState), out is_first);
				
				if (YoozooGameplayLibertyAIBattleState_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.Liberty.AI.BattleState));
				    YoozooGameplayLibertyAIBattleState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayLibertyAIBattleState_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayLibertyAIBattleState_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.Liberty.AI.BattleState ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayLibertyAIBattleState_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.Liberty.AI.BattleState val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyAIBattleState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.AI.BattleState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.Liberty.AI.BattleState");
                }
				val = (Yoozoo.Gameplay.Liberty.AI.BattleState)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.Liberty.AI.BattleState)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.Liberty.AI.BattleState))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayLibertyAIBattleState(RealStatePtr L, int index, Yoozoo.Gameplay.Liberty.AI.BattleState val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyAIBattleState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.AI.BattleState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.Liberty.AI.BattleState ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int TreeType_TypeID = -1;
		int TreeType_EnumRef = -1;
        
        public void PushTreeType(RealStatePtr L, TreeType val)
        {
            if (TreeType_TypeID == -1)
            {
			    bool is_first;
                TreeType_TypeID = getTypeId(L, typeof(TreeType), out is_first);
				
				if (TreeType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(TreeType));
				    TreeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TreeType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TreeType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for TreeType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, TreeType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out TreeType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != TreeType_TypeID)
				{
				    throw new Exception("invalid userdata for TreeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for TreeType");
                }
				val = (TreeType)e;
                
            }
            else
            {
                val = (TreeType)objectCasters.GetCaster(typeof(TreeType))(L, index, null);
            }
        }
		
        public void UpdateTreeType(RealStatePtr L, int index, TreeType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != TreeType_TypeID)
				{
				    throw new Exception("invalid userdata for TreeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for TreeType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int SystemEnvironmentSpecialFolder_TypeID = -1;
		int SystemEnvironmentSpecialFolder_EnumRef = -1;
        
        public void PushSystemEnvironmentSpecialFolder(RealStatePtr L, System.Environment.SpecialFolder val)
        {
            if (SystemEnvironmentSpecialFolder_TypeID == -1)
            {
			    bool is_first;
                SystemEnvironmentSpecialFolder_TypeID = getTypeId(L, typeof(System.Environment.SpecialFolder), out is_first);
				
				if (SystemEnvironmentSpecialFolder_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(System.Environment.SpecialFolder));
				    SystemEnvironmentSpecialFolder_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, SystemEnvironmentSpecialFolder_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, SystemEnvironmentSpecialFolder_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for System.Environment.SpecialFolder ,value="+val);
            }
			
			LuaAPI.lua_getref(L, SystemEnvironmentSpecialFolder_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out System.Environment.SpecialFolder val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemEnvironmentSpecialFolder_TypeID)
				{
				    throw new Exception("invalid userdata for System.Environment.SpecialFolder");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for System.Environment.SpecialFolder");
                }
				val = (System.Environment.SpecialFolder)e;
                
            }
            else
            {
                val = (System.Environment.SpecialFolder)objectCasters.GetCaster(typeof(System.Environment.SpecialFolder))(L, index, null);
            }
        }
		
        public void UpdateSystemEnvironmentSpecialFolder(RealStatePtr L, int index, System.Environment.SpecialFolder val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemEnvironmentSpecialFolder_TypeID)
				{
				    throw new Exception("invalid userdata for System.Environment.SpecialFolder");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for System.Environment.SpecialFolder ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int SystemEnvironmentSpecialFolderOption_TypeID = -1;
		int SystemEnvironmentSpecialFolderOption_EnumRef = -1;
        
        public void PushSystemEnvironmentSpecialFolderOption(RealStatePtr L, System.Environment.SpecialFolderOption val)
        {
            if (SystemEnvironmentSpecialFolderOption_TypeID == -1)
            {
			    bool is_first;
                SystemEnvironmentSpecialFolderOption_TypeID = getTypeId(L, typeof(System.Environment.SpecialFolderOption), out is_first);
				
				if (SystemEnvironmentSpecialFolderOption_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(System.Environment.SpecialFolderOption));
				    SystemEnvironmentSpecialFolderOption_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, SystemEnvironmentSpecialFolderOption_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, SystemEnvironmentSpecialFolderOption_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for System.Environment.SpecialFolderOption ,value="+val);
            }
			
			LuaAPI.lua_getref(L, SystemEnvironmentSpecialFolderOption_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out System.Environment.SpecialFolderOption val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemEnvironmentSpecialFolderOption_TypeID)
				{
				    throw new Exception("invalid userdata for System.Environment.SpecialFolderOption");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for System.Environment.SpecialFolderOption");
                }
				val = (System.Environment.SpecialFolderOption)e;
                
            }
            else
            {
                val = (System.Environment.SpecialFolderOption)objectCasters.GetCaster(typeof(System.Environment.SpecialFolderOption))(L, index, null);
            }
        }
		
        public void UpdateSystemEnvironmentSpecialFolderOption(RealStatePtr L, int index, System.Environment.SpecialFolderOption val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemEnvironmentSpecialFolderOption_TypeID)
				{
				    throw new Exception("invalid userdata for System.Environment.SpecialFolderOption");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for System.Environment.SpecialFolderOption ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int WorldEntryMapPointType_TypeID = -1;
		int WorldEntryMapPointType_EnumRef = -1;
        
        public void PushWorldEntryMapPointType(RealStatePtr L, WorldEntry.MapPointType val)
        {
            if (WorldEntryMapPointType_TypeID == -1)
            {
			    bool is_first;
                WorldEntryMapPointType_TypeID = getTypeId(L, typeof(WorldEntry.MapPointType), out is_first);
				
				if (WorldEntryMapPointType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(WorldEntry.MapPointType));
				    WorldEntryMapPointType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, WorldEntryMapPointType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, WorldEntryMapPointType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for WorldEntry.MapPointType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, WorldEntryMapPointType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out WorldEntry.MapPointType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != WorldEntryMapPointType_TypeID)
				{
				    throw new Exception("invalid userdata for WorldEntry.MapPointType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for WorldEntry.MapPointType");
                }
				val = (WorldEntry.MapPointType)e;
                
            }
            else
            {
                val = (WorldEntry.MapPointType)objectCasters.GetCaster(typeof(WorldEntry.MapPointType))(L, index, null);
            }
        }
		
        public void UpdateWorldEntryMapPointType(RealStatePtr L, int index, WorldEntry.MapPointType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != WorldEntryMapPointType_TypeID)
				{
				    throw new Exception("invalid userdata for WorldEntry.MapPointType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for WorldEntry.MapPointType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooManagerTouchManagerRaycastTarget_TypeID = -1;
		int YoozooManagerTouchManagerRaycastTarget_EnumRef = -1;
        
        public void PushYoozooManagerTouchManagerRaycastTarget(RealStatePtr L, Yoozoo.Manager.TouchManager.RaycastTarget val)
        {
            if (YoozooManagerTouchManagerRaycastTarget_TypeID == -1)
            {
			    bool is_first;
                YoozooManagerTouchManagerRaycastTarget_TypeID = getTypeId(L, typeof(Yoozoo.Manager.TouchManager.RaycastTarget), out is_first);
				
				if (YoozooManagerTouchManagerRaycastTarget_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Manager.TouchManager.RaycastTarget));
				    YoozooManagerTouchManagerRaycastTarget_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooManagerTouchManagerRaycastTarget_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooManagerTouchManagerRaycastTarget_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Manager.TouchManager.RaycastTarget ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooManagerTouchManagerRaycastTarget_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Manager.TouchManager.RaycastTarget val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagerTouchManagerRaycastTarget_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Manager.TouchManager.RaycastTarget");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Manager.TouchManager.RaycastTarget");
                }
				val = (Yoozoo.Manager.TouchManager.RaycastTarget)e;
                
            }
            else
            {
                val = (Yoozoo.Manager.TouchManager.RaycastTarget)objectCasters.GetCaster(typeof(Yoozoo.Manager.TouchManager.RaycastTarget))(L, index, null);
            }
        }
		
        public void UpdateYoozooManagerTouchManagerRaycastTarget(RealStatePtr L, int index, Yoozoo.Manager.TouchManager.RaycastTarget val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooManagerTouchManagerRaycastTarget_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Manager.TouchManager.RaycastTarget");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Manager.TouchManager.RaycastTarget ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRectTransformEdge_TypeID = -1;
		int UnityEngineRectTransformEdge_EnumRef = -1;
        
        public void PushUnityEngineRectTransformEdge(RealStatePtr L, UnityEngine.RectTransform.Edge val)
        {
            if (UnityEngineRectTransformEdge_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRectTransformEdge_TypeID = getTypeId(L, typeof(UnityEngine.RectTransform.Edge), out is_first);
				
				if (UnityEngineRectTransformEdge_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.RectTransform.Edge));
				    UnityEngineRectTransformEdge_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRectTransformEdge_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRectTransformEdge_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.RectTransform.Edge ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRectTransformEdge_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.RectTransform.Edge val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRectTransformEdge_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RectTransform.Edge");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.RectTransform.Edge");
                }
				val = (UnityEngine.RectTransform.Edge)e;
                
            }
            else
            {
                val = (UnityEngine.RectTransform.Edge)objectCasters.GetCaster(typeof(UnityEngine.RectTransform.Edge))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRectTransformEdge(RealStatePtr L, int index, UnityEngine.RectTransform.Edge val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRectTransformEdge_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RectTransform.Edge");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.RectTransform.Edge ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineRectTransformAxis_TypeID = -1;
		int UnityEngineRectTransformAxis_EnumRef = -1;
        
        public void PushUnityEngineRectTransformAxis(RealStatePtr L, UnityEngine.RectTransform.Axis val)
        {
            if (UnityEngineRectTransformAxis_TypeID == -1)
            {
			    bool is_first;
                UnityEngineRectTransformAxis_TypeID = getTypeId(L, typeof(UnityEngine.RectTransform.Axis), out is_first);
				
				if (UnityEngineRectTransformAxis_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.RectTransform.Axis));
				    UnityEngineRectTransformAxis_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineRectTransformAxis_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineRectTransformAxis_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.RectTransform.Axis ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineRectTransformAxis_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.RectTransform.Axis val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRectTransformAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RectTransform.Axis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.RectTransform.Axis");
                }
				val = (UnityEngine.RectTransform.Axis)e;
                
            }
            else
            {
                val = (UnityEngine.RectTransform.Axis)objectCasters.GetCaster(typeof(UnityEngine.RectTransform.Axis))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineRectTransformAxis(RealStatePtr L, int index, UnityEngine.RectTransform.Axis val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineRectTransformAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.RectTransform.Axis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.RectTransform.Axis ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineTexture2DEXRFlags_TypeID = -1;
		int UnityEngineTexture2DEXRFlags_EnumRef = -1;
        
        public void PushUnityEngineTexture2DEXRFlags(RealStatePtr L, UnityEngine.Texture2D.EXRFlags val)
        {
            if (UnityEngineTexture2DEXRFlags_TypeID == -1)
            {
			    bool is_first;
                UnityEngineTexture2DEXRFlags_TypeID = getTypeId(L, typeof(UnityEngine.Texture2D.EXRFlags), out is_first);
				
				if (UnityEngineTexture2DEXRFlags_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Texture2D.EXRFlags));
				    UnityEngineTexture2DEXRFlags_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineTexture2DEXRFlags_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineTexture2DEXRFlags_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Texture2D.EXRFlags ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineTexture2DEXRFlags_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Texture2D.EXRFlags val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineTexture2DEXRFlags_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Texture2D.EXRFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Texture2D.EXRFlags");
                }
				val = (UnityEngine.Texture2D.EXRFlags)e;
                
            }
            else
            {
                val = (UnityEngine.Texture2D.EXRFlags)objectCasters.GetCaster(typeof(UnityEngine.Texture2D.EXRFlags))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineTexture2DEXRFlags(RealStatePtr L, int index, UnityEngine.Texture2D.EXRFlags val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineTexture2DEXRFlags_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Texture2D.EXRFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Texture2D.EXRFlags ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIScrollRectMovementType_TypeID = -1;
		int UnityEngineUIScrollRectMovementType_EnumRef = -1;
        
        public void PushUnityEngineUIScrollRectMovementType(RealStatePtr L, UnityEngine.UI.ScrollRect.MovementType val)
        {
            if (UnityEngineUIScrollRectMovementType_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIScrollRectMovementType_TypeID = getTypeId(L, typeof(UnityEngine.UI.ScrollRect.MovementType), out is_first);
				
				if (UnityEngineUIScrollRectMovementType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.ScrollRect.MovementType));
				    UnityEngineUIScrollRectMovementType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIScrollRectMovementType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIScrollRectMovementType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.ScrollRect.MovementType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIScrollRectMovementType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.ScrollRect.MovementType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIScrollRectMovementType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ScrollRect.MovementType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.ScrollRect.MovementType");
                }
				val = (UnityEngine.UI.ScrollRect.MovementType)e;
                
            }
            else
            {
                val = (UnityEngine.UI.ScrollRect.MovementType)objectCasters.GetCaster(typeof(UnityEngine.UI.ScrollRect.MovementType))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIScrollRectMovementType(RealStatePtr L, int index, UnityEngine.UI.ScrollRect.MovementType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIScrollRectMovementType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ScrollRect.MovementType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.ScrollRect.MovementType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIScrollRectScrollbarVisibility_TypeID = -1;
		int UnityEngineUIScrollRectScrollbarVisibility_EnumRef = -1;
        
        public void PushUnityEngineUIScrollRectScrollbarVisibility(RealStatePtr L, UnityEngine.UI.ScrollRect.ScrollbarVisibility val)
        {
            if (UnityEngineUIScrollRectScrollbarVisibility_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIScrollRectScrollbarVisibility_TypeID = getTypeId(L, typeof(UnityEngine.UI.ScrollRect.ScrollbarVisibility), out is_first);
				
				if (UnityEngineUIScrollRectScrollbarVisibility_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.ScrollRect.ScrollbarVisibility));
				    UnityEngineUIScrollRectScrollbarVisibility_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIScrollRectScrollbarVisibility_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIScrollRectScrollbarVisibility_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.ScrollRect.ScrollbarVisibility ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIScrollRectScrollbarVisibility_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.ScrollRect.ScrollbarVisibility val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIScrollRectScrollbarVisibility_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ScrollRect.ScrollbarVisibility");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.ScrollRect.ScrollbarVisibility");
                }
				val = (UnityEngine.UI.ScrollRect.ScrollbarVisibility)e;
                
            }
            else
            {
                val = (UnityEngine.UI.ScrollRect.ScrollbarVisibility)objectCasters.GetCaster(typeof(UnityEngine.UI.ScrollRect.ScrollbarVisibility))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIScrollRectScrollbarVisibility(RealStatePtr L, int index, UnityEngine.UI.ScrollRect.ScrollbarVisibility val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIScrollRectScrollbarVisibility_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ScrollRect.ScrollbarVisibility");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.ScrollRect.ScrollbarVisibility ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIGridLayoutGroupCorner_TypeID = -1;
		int UnityEngineUIGridLayoutGroupCorner_EnumRef = -1;
        
        public void PushUnityEngineUIGridLayoutGroupCorner(RealStatePtr L, UnityEngine.UI.GridLayoutGroup.Corner val)
        {
            if (UnityEngineUIGridLayoutGroupCorner_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIGridLayoutGroupCorner_TypeID = getTypeId(L, typeof(UnityEngine.UI.GridLayoutGroup.Corner), out is_first);
				
				if (UnityEngineUIGridLayoutGroupCorner_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.GridLayoutGroup.Corner));
				    UnityEngineUIGridLayoutGroupCorner_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIGridLayoutGroupCorner_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIGridLayoutGroupCorner_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.GridLayoutGroup.Corner ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIGridLayoutGroupCorner_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.GridLayoutGroup.Corner val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupCorner_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Corner");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.GridLayoutGroup.Corner");
                }
				val = (UnityEngine.UI.GridLayoutGroup.Corner)e;
                
            }
            else
            {
                val = (UnityEngine.UI.GridLayoutGroup.Corner)objectCasters.GetCaster(typeof(UnityEngine.UI.GridLayoutGroup.Corner))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIGridLayoutGroupCorner(RealStatePtr L, int index, UnityEngine.UI.GridLayoutGroup.Corner val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupCorner_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Corner");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.GridLayoutGroup.Corner ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIGridLayoutGroupAxis_TypeID = -1;
		int UnityEngineUIGridLayoutGroupAxis_EnumRef = -1;
        
        public void PushUnityEngineUIGridLayoutGroupAxis(RealStatePtr L, UnityEngine.UI.GridLayoutGroup.Axis val)
        {
            if (UnityEngineUIGridLayoutGroupAxis_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIGridLayoutGroupAxis_TypeID = getTypeId(L, typeof(UnityEngine.UI.GridLayoutGroup.Axis), out is_first);
				
				if (UnityEngineUIGridLayoutGroupAxis_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.GridLayoutGroup.Axis));
				    UnityEngineUIGridLayoutGroupAxis_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIGridLayoutGroupAxis_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIGridLayoutGroupAxis_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.GridLayoutGroup.Axis ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIGridLayoutGroupAxis_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.GridLayoutGroup.Axis val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Axis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.GridLayoutGroup.Axis");
                }
				val = (UnityEngine.UI.GridLayoutGroup.Axis)e;
                
            }
            else
            {
                val = (UnityEngine.UI.GridLayoutGroup.Axis)objectCasters.GetCaster(typeof(UnityEngine.UI.GridLayoutGroup.Axis))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIGridLayoutGroupAxis(RealStatePtr L, int index, UnityEngine.UI.GridLayoutGroup.Axis val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Axis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.GridLayoutGroup.Axis ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIGridLayoutGroupConstraint_TypeID = -1;
		int UnityEngineUIGridLayoutGroupConstraint_EnumRef = -1;
        
        public void PushUnityEngineUIGridLayoutGroupConstraint(RealStatePtr L, UnityEngine.UI.GridLayoutGroup.Constraint val)
        {
            if (UnityEngineUIGridLayoutGroupConstraint_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIGridLayoutGroupConstraint_TypeID = getTypeId(L, typeof(UnityEngine.UI.GridLayoutGroup.Constraint), out is_first);
				
				if (UnityEngineUIGridLayoutGroupConstraint_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.GridLayoutGroup.Constraint));
				    UnityEngineUIGridLayoutGroupConstraint_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIGridLayoutGroupConstraint_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIGridLayoutGroupConstraint_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.GridLayoutGroup.Constraint ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIGridLayoutGroupConstraint_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.GridLayoutGroup.Constraint val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupConstraint_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Constraint");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.GridLayoutGroup.Constraint");
                }
				val = (UnityEngine.UI.GridLayoutGroup.Constraint)e;
                
            }
            else
            {
                val = (UnityEngine.UI.GridLayoutGroup.Constraint)objectCasters.GetCaster(typeof(UnityEngine.UI.GridLayoutGroup.Constraint))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIGridLayoutGroupConstraint(RealStatePtr L, int index, UnityEngine.UI.GridLayoutGroup.Constraint val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGridLayoutGroupConstraint_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GridLayoutGroup.Constraint");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.GridLayoutGroup.Constraint ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIContentSizeFitterFitMode_TypeID = -1;
		int UnityEngineUIContentSizeFitterFitMode_EnumRef = -1;
        
        public void PushUnityEngineUIContentSizeFitterFitMode(RealStatePtr L, UnityEngine.UI.ContentSizeFitter.FitMode val)
        {
            if (UnityEngineUIContentSizeFitterFitMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIContentSizeFitterFitMode_TypeID = getTypeId(L, typeof(UnityEngine.UI.ContentSizeFitter.FitMode), out is_first);
				
				if (UnityEngineUIContentSizeFitterFitMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.ContentSizeFitter.FitMode));
				    UnityEngineUIContentSizeFitterFitMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIContentSizeFitterFitMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIContentSizeFitterFitMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.ContentSizeFitter.FitMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIContentSizeFitterFitMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.ContentSizeFitter.FitMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIContentSizeFitterFitMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ContentSizeFitter.FitMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.ContentSizeFitter.FitMode");
                }
				val = (UnityEngine.UI.ContentSizeFitter.FitMode)e;
                
            }
            else
            {
                val = (UnityEngine.UI.ContentSizeFitter.FitMode)objectCasters.GetCaster(typeof(UnityEngine.UI.ContentSizeFitter.FitMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIContentSizeFitterFitMode(RealStatePtr L, int index, UnityEngine.UI.ContentSizeFitter.FitMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIContentSizeFitterFitMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.ContentSizeFitter.FitMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.ContentSizeFitter.FitMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIInputFieldContentType_TypeID = -1;
		int UnityEngineUIInputFieldContentType_EnumRef = -1;
        
        public void PushUnityEngineUIInputFieldContentType(RealStatePtr L, UnityEngine.UI.InputField.ContentType val)
        {
            if (UnityEngineUIInputFieldContentType_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIInputFieldContentType_TypeID = getTypeId(L, typeof(UnityEngine.UI.InputField.ContentType), out is_first);
				
				if (UnityEngineUIInputFieldContentType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.InputField.ContentType));
				    UnityEngineUIInputFieldContentType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIInputFieldContentType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIInputFieldContentType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.InputField.ContentType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIInputFieldContentType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.InputField.ContentType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldContentType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.ContentType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.InputField.ContentType");
                }
				val = (UnityEngine.UI.InputField.ContentType)e;
                
            }
            else
            {
                val = (UnityEngine.UI.InputField.ContentType)objectCasters.GetCaster(typeof(UnityEngine.UI.InputField.ContentType))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIInputFieldContentType(RealStatePtr L, int index, UnityEngine.UI.InputField.ContentType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldContentType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.ContentType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.InputField.ContentType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIInputFieldInputType_TypeID = -1;
		int UnityEngineUIInputFieldInputType_EnumRef = -1;
        
        public void PushUnityEngineUIInputFieldInputType(RealStatePtr L, UnityEngine.UI.InputField.InputType val)
        {
            if (UnityEngineUIInputFieldInputType_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIInputFieldInputType_TypeID = getTypeId(L, typeof(UnityEngine.UI.InputField.InputType), out is_first);
				
				if (UnityEngineUIInputFieldInputType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.InputField.InputType));
				    UnityEngineUIInputFieldInputType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIInputFieldInputType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIInputFieldInputType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.InputField.InputType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIInputFieldInputType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.InputField.InputType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldInputType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.InputType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.InputField.InputType");
                }
				val = (UnityEngine.UI.InputField.InputType)e;
                
            }
            else
            {
                val = (UnityEngine.UI.InputField.InputType)objectCasters.GetCaster(typeof(UnityEngine.UI.InputField.InputType))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIInputFieldInputType(RealStatePtr L, int index, UnityEngine.UI.InputField.InputType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldInputType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.InputType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.InputField.InputType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIInputFieldCharacterValidation_TypeID = -1;
		int UnityEngineUIInputFieldCharacterValidation_EnumRef = -1;
        
        public void PushUnityEngineUIInputFieldCharacterValidation(RealStatePtr L, UnityEngine.UI.InputField.CharacterValidation val)
        {
            if (UnityEngineUIInputFieldCharacterValidation_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIInputFieldCharacterValidation_TypeID = getTypeId(L, typeof(UnityEngine.UI.InputField.CharacterValidation), out is_first);
				
				if (UnityEngineUIInputFieldCharacterValidation_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.InputField.CharacterValidation));
				    UnityEngineUIInputFieldCharacterValidation_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIInputFieldCharacterValidation_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIInputFieldCharacterValidation_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.InputField.CharacterValidation ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIInputFieldCharacterValidation_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.InputField.CharacterValidation val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldCharacterValidation_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.CharacterValidation");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.InputField.CharacterValidation");
                }
				val = (UnityEngine.UI.InputField.CharacterValidation)e;
                
            }
            else
            {
                val = (UnityEngine.UI.InputField.CharacterValidation)objectCasters.GetCaster(typeof(UnityEngine.UI.InputField.CharacterValidation))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIInputFieldCharacterValidation(RealStatePtr L, int index, UnityEngine.UI.InputField.CharacterValidation val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldCharacterValidation_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.CharacterValidation");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.InputField.CharacterValidation ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIInputFieldLineType_TypeID = -1;
		int UnityEngineUIInputFieldLineType_EnumRef = -1;
        
        public void PushUnityEngineUIInputFieldLineType(RealStatePtr L, UnityEngine.UI.InputField.LineType val)
        {
            if (UnityEngineUIInputFieldLineType_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIInputFieldLineType_TypeID = getTypeId(L, typeof(UnityEngine.UI.InputField.LineType), out is_first);
				
				if (UnityEngineUIInputFieldLineType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.InputField.LineType));
				    UnityEngineUIInputFieldLineType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIInputFieldLineType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIInputFieldLineType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.InputField.LineType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIInputFieldLineType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.InputField.LineType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldLineType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.LineType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.InputField.LineType");
                }
				val = (UnityEngine.UI.InputField.LineType)e;
                
            }
            else
            {
                val = (UnityEngine.UI.InputField.LineType)objectCasters.GetCaster(typeof(UnityEngine.UI.InputField.LineType))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIInputFieldLineType(RealStatePtr L, int index, UnityEngine.UI.InputField.LineType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIInputFieldLineType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.InputField.LineType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.InputField.LineType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYListDirection_TypeID = -1;
		int YoozooUIYGUIYListDirection_EnumRef = -1;
        
        public void PushYoozooUIYGUIYListDirection(RealStatePtr L, Yoozoo.UI.YGUI.YList.Direction val)
        {
            if (YoozooUIYGUIYListDirection_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYListDirection_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YList.Direction), out is_first);
				
				if (YoozooUIYGUIYListDirection_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YList.Direction));
				    YoozooUIYGUIYListDirection_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYListDirection_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYListDirection_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YList.Direction ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYListDirection_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YList.Direction val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYListDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YList.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YList.Direction");
                }
				val = (Yoozoo.UI.YGUI.YList.Direction)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YList.Direction)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YList.Direction))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYListDirection(RealStatePtr L, int index, Yoozoo.UI.YGUI.YList.Direction val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYListDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YList.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YList.Direction ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYSliderDirection_TypeID = -1;
		int YoozooUIYGUIYSliderDirection_EnumRef = -1;
        
        public void PushYoozooUIYGUIYSliderDirection(RealStatePtr L, Yoozoo.UI.YGUI.YSlider.Direction val)
        {
            if (YoozooUIYGUIYSliderDirection_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYSliderDirection_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YSlider.Direction), out is_first);
				
				if (YoozooUIYGUIYSliderDirection_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YSlider.Direction));
				    YoozooUIYGUIYSliderDirection_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYSliderDirection_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYSliderDirection_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YSlider.Direction ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYSliderDirection_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YSlider.Direction val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYSliderDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YSlider.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YSlider.Direction");
                }
				val = (Yoozoo.UI.YGUI.YSlider.Direction)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YSlider.Direction)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YSlider.Direction))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYSliderDirection(RealStatePtr L, int index, Yoozoo.UI.YGUI.YSlider.Direction val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYSliderDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YSlider.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YSlider.Direction ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYSliderTextType_TypeID = -1;
		int YoozooUIYGUIYSliderTextType_EnumRef = -1;
        
        public void PushYoozooUIYGUIYSliderTextType(RealStatePtr L, Yoozoo.UI.YGUI.YSlider.TextType val)
        {
            if (YoozooUIYGUIYSliderTextType_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYSliderTextType_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YSlider.TextType), out is_first);
				
				if (YoozooUIYGUIYSliderTextType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YSlider.TextType));
				    YoozooUIYGUIYSliderTextType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYSliderTextType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYSliderTextType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YSlider.TextType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYSliderTextType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YSlider.TextType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYSliderTextType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YSlider.TextType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YSlider.TextType");
                }
				val = (Yoozoo.UI.YGUI.YSlider.TextType)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YSlider.TextType)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YSlider.TextType))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYSliderTextType(RealStatePtr L, int index, Yoozoo.UI.YGUI.YSlider.TextType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYSliderTextType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YSlider.TextType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YSlider.TextType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYRichTextLineAlignment_TypeID = -1;
		int YoozooUIYGUIYRichTextLineAlignment_EnumRef = -1;
        
        public void PushYoozooUIYGUIYRichTextLineAlignment(RealStatePtr L, Yoozoo.UI.YGUI.YRichText.LineAlignment val)
        {
            if (YoozooUIYGUIYRichTextLineAlignment_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYRichTextLineAlignment_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YRichText.LineAlignment), out is_first);
				
				if (YoozooUIYGUIYRichTextLineAlignment_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YRichText.LineAlignment));
				    YoozooUIYGUIYRichTextLineAlignment_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYRichTextLineAlignment_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYRichTextLineAlignment_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YRichText.LineAlignment ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYRichTextLineAlignment_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YRichText.LineAlignment val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYRichTextLineAlignment_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YRichText.LineAlignment");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YRichText.LineAlignment");
                }
				val = (Yoozoo.UI.YGUI.YRichText.LineAlignment)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YRichText.LineAlignment)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YRichText.LineAlignment))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYRichTextLineAlignment(RealStatePtr L, int index, Yoozoo.UI.YGUI.YRichText.LineAlignment val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYRichTextLineAlignment_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YRichText.LineAlignment");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YRichText.LineAlignment ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID = -1;
		int YoozooUIYGUIYRichUnderlineTextLineAlignment_EnumRef = -1;
        
        public void PushYoozooUIYGUIYRichUnderlineTextLineAlignment(RealStatePtr L, Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment val)
        {
            if (YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment), out is_first);
				
				if (YoozooUIYGUIYRichUnderlineTextLineAlignment_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment));
				    YoozooUIYGUIYRichUnderlineTextLineAlignment_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYRichUnderlineTextLineAlignment_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYRichUnderlineTextLineAlignment_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment");
                }
				val = (Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYRichUnderlineTextLineAlignment(RealStatePtr L, int index, Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYRichUnderlineTextLineAlignment_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int GameplayPVEAStarMgrEShapeType_TypeID = -1;
		int GameplayPVEAStarMgrEShapeType_EnumRef = -1;
        
        public void PushGameplayPVEAStarMgrEShapeType(RealStatePtr L, Gameplay.PVE.AStarMgr.EShapeType val)
        {
            if (GameplayPVEAStarMgrEShapeType_TypeID == -1)
            {
			    bool is_first;
                GameplayPVEAStarMgrEShapeType_TypeID = getTypeId(L, typeof(Gameplay.PVE.AStarMgr.EShapeType), out is_first);
				
				if (GameplayPVEAStarMgrEShapeType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Gameplay.PVE.AStarMgr.EShapeType));
				    GameplayPVEAStarMgrEShapeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GameplayPVEAStarMgrEShapeType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GameplayPVEAStarMgrEShapeType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Gameplay.PVE.AStarMgr.EShapeType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, GameplayPVEAStarMgrEShapeType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Gameplay.PVE.AStarMgr.EShapeType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != GameplayPVEAStarMgrEShapeType_TypeID)
				{
				    throw new Exception("invalid userdata for Gameplay.PVE.AStarMgr.EShapeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Gameplay.PVE.AStarMgr.EShapeType");
                }
				val = (Gameplay.PVE.AStarMgr.EShapeType)e;
                
            }
            else
            {
                val = (Gameplay.PVE.AStarMgr.EShapeType)objectCasters.GetCaster(typeof(Gameplay.PVE.AStarMgr.EShapeType))(L, index, null);
            }
        }
		
        public void UpdateGameplayPVEAStarMgrEShapeType(RealStatePtr L, int index, Gameplay.PVE.AStarMgr.EShapeType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != GameplayPVEAStarMgrEShapeType_TypeID)
				{
				    throw new Exception("invalid userdata for Gameplay.PVE.AStarMgr.EShapeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Gameplay.PVE.AStarMgr.EShapeType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineCameraGateFitMode_TypeID = -1;
		int UnityEngineCameraGateFitMode_EnumRef = -1;
        
        public void PushUnityEngineCameraGateFitMode(RealStatePtr L, UnityEngine.Camera.GateFitMode val)
        {
            if (UnityEngineCameraGateFitMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineCameraGateFitMode_TypeID = getTypeId(L, typeof(UnityEngine.Camera.GateFitMode), out is_first);
				
				if (UnityEngineCameraGateFitMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Camera.GateFitMode));
				    UnityEngineCameraGateFitMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineCameraGateFitMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineCameraGateFitMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Camera.GateFitMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineCameraGateFitMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Camera.GateFitMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraGateFitMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.GateFitMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Camera.GateFitMode");
                }
				val = (UnityEngine.Camera.GateFitMode)e;
                
            }
            else
            {
                val = (UnityEngine.Camera.GateFitMode)objectCasters.GetCaster(typeof(UnityEngine.Camera.GateFitMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineCameraGateFitMode(RealStatePtr L, int index, UnityEngine.Camera.GateFitMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraGateFitMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.GateFitMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Camera.GateFitMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineCameraFieldOfViewAxis_TypeID = -1;
		int UnityEngineCameraFieldOfViewAxis_EnumRef = -1;
        
        public void PushUnityEngineCameraFieldOfViewAxis(RealStatePtr L, UnityEngine.Camera.FieldOfViewAxis val)
        {
            if (UnityEngineCameraFieldOfViewAxis_TypeID == -1)
            {
			    bool is_first;
                UnityEngineCameraFieldOfViewAxis_TypeID = getTypeId(L, typeof(UnityEngine.Camera.FieldOfViewAxis), out is_first);
				
				if (UnityEngineCameraFieldOfViewAxis_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Camera.FieldOfViewAxis));
				    UnityEngineCameraFieldOfViewAxis_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineCameraFieldOfViewAxis_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineCameraFieldOfViewAxis_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Camera.FieldOfViewAxis ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineCameraFieldOfViewAxis_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Camera.FieldOfViewAxis val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraFieldOfViewAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.FieldOfViewAxis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Camera.FieldOfViewAxis");
                }
				val = (UnityEngine.Camera.FieldOfViewAxis)e;
                
            }
            else
            {
                val = (UnityEngine.Camera.FieldOfViewAxis)objectCasters.GetCaster(typeof(UnityEngine.Camera.FieldOfViewAxis))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineCameraFieldOfViewAxis(RealStatePtr L, int index, UnityEngine.Camera.FieldOfViewAxis val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraFieldOfViewAxis_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.FieldOfViewAxis");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Camera.FieldOfViewAxis ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineCameraStereoscopicEye_TypeID = -1;
		int UnityEngineCameraStereoscopicEye_EnumRef = -1;
        
        public void PushUnityEngineCameraStereoscopicEye(RealStatePtr L, UnityEngine.Camera.StereoscopicEye val)
        {
            if (UnityEngineCameraStereoscopicEye_TypeID == -1)
            {
			    bool is_first;
                UnityEngineCameraStereoscopicEye_TypeID = getTypeId(L, typeof(UnityEngine.Camera.StereoscopicEye), out is_first);
				
				if (UnityEngineCameraStereoscopicEye_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Camera.StereoscopicEye));
				    UnityEngineCameraStereoscopicEye_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineCameraStereoscopicEye_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineCameraStereoscopicEye_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Camera.StereoscopicEye ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineCameraStereoscopicEye_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Camera.StereoscopicEye val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraStereoscopicEye_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.StereoscopicEye");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Camera.StereoscopicEye");
                }
				val = (UnityEngine.Camera.StereoscopicEye)e;
                
            }
            else
            {
                val = (UnityEngine.Camera.StereoscopicEye)objectCasters.GetCaster(typeof(UnityEngine.Camera.StereoscopicEye))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineCameraStereoscopicEye(RealStatePtr L, int index, UnityEngine.Camera.StereoscopicEye val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraStereoscopicEye_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.StereoscopicEye");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Camera.StereoscopicEye ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineCameraMonoOrStereoscopicEye_TypeID = -1;
		int UnityEngineCameraMonoOrStereoscopicEye_EnumRef = -1;
        
        public void PushUnityEngineCameraMonoOrStereoscopicEye(RealStatePtr L, UnityEngine.Camera.MonoOrStereoscopicEye val)
        {
            if (UnityEngineCameraMonoOrStereoscopicEye_TypeID == -1)
            {
			    bool is_first;
                UnityEngineCameraMonoOrStereoscopicEye_TypeID = getTypeId(L, typeof(UnityEngine.Camera.MonoOrStereoscopicEye), out is_first);
				
				if (UnityEngineCameraMonoOrStereoscopicEye_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.Camera.MonoOrStereoscopicEye));
				    UnityEngineCameraMonoOrStereoscopicEye_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineCameraMonoOrStereoscopicEye_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineCameraMonoOrStereoscopicEye_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.Camera.MonoOrStereoscopicEye ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineCameraMonoOrStereoscopicEye_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.Camera.MonoOrStereoscopicEye val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraMonoOrStereoscopicEye_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.MonoOrStereoscopicEye");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.Camera.MonoOrStereoscopicEye");
                }
				val = (UnityEngine.Camera.MonoOrStereoscopicEye)e;
                
            }
            else
            {
                val = (UnityEngine.Camera.MonoOrStereoscopicEye)objectCasters.GetCaster(typeof(UnityEngine.Camera.MonoOrStereoscopicEye))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineCameraMonoOrStereoscopicEye(RealStatePtr L, int index, UnityEngine.Camera.MonoOrStereoscopicEye val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineCameraMonoOrStereoscopicEye_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.Camera.MonoOrStereoscopicEye");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.Camera.MonoOrStereoscopicEye ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIListViewListSelectionMode_TypeID = -1;
		int YoozooUIYGUIListViewListSelectionMode_EnumRef = -1;
        
        public void PushYoozooUIYGUIListViewListSelectionMode(RealStatePtr L, Yoozoo.UI.YGUI.ListView.ListSelectionMode val)
        {
            if (YoozooUIYGUIListViewListSelectionMode_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIListViewListSelectionMode_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.ListView.ListSelectionMode), out is_first);
				
				if (YoozooUIYGUIListViewListSelectionMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.ListView.ListSelectionMode));
				    YoozooUIYGUIListViewListSelectionMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIListViewListSelectionMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIListViewListSelectionMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.ListView.ListSelectionMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIListViewListSelectionMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.ListView.ListSelectionMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewListSelectionMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ListSelectionMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.ListView.ListSelectionMode");
                }
				val = (Yoozoo.UI.YGUI.ListView.ListSelectionMode)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.ListView.ListSelectionMode)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.ListView.ListSelectionMode))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIListViewListSelectionMode(RealStatePtr L, int index, Yoozoo.UI.YGUI.ListView.ListSelectionMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewListSelectionMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ListSelectionMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.ListView.ListSelectionMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIListViewListLayoutType_TypeID = -1;
		int YoozooUIYGUIListViewListLayoutType_EnumRef = -1;
        
        public void PushYoozooUIYGUIListViewListLayoutType(RealStatePtr L, Yoozoo.UI.YGUI.ListView.ListLayoutType val)
        {
            if (YoozooUIYGUIListViewListLayoutType_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIListViewListLayoutType_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.ListView.ListLayoutType), out is_first);
				
				if (YoozooUIYGUIListViewListLayoutType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.ListView.ListLayoutType));
				    YoozooUIYGUIListViewListLayoutType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIListViewListLayoutType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIListViewListLayoutType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.ListView.ListLayoutType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIListViewListLayoutType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.ListView.ListLayoutType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewListLayoutType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ListLayoutType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.ListView.ListLayoutType");
                }
				val = (Yoozoo.UI.YGUI.ListView.ListLayoutType)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.ListView.ListLayoutType)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.ListView.ListLayoutType))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIListViewListLayoutType(RealStatePtr L, int index, Yoozoo.UI.YGUI.ListView.ListLayoutType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewListLayoutType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ListLayoutType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.ListView.ListLayoutType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIListViewVertAlignType_TypeID = -1;
		int YoozooUIYGUIListViewVertAlignType_EnumRef = -1;
        
        public void PushYoozooUIYGUIListViewVertAlignType(RealStatePtr L, Yoozoo.UI.YGUI.ListView.VertAlignType val)
        {
            if (YoozooUIYGUIListViewVertAlignType_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIListViewVertAlignType_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.ListView.VertAlignType), out is_first);
				
				if (YoozooUIYGUIListViewVertAlignType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.ListView.VertAlignType));
				    YoozooUIYGUIListViewVertAlignType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIListViewVertAlignType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIListViewVertAlignType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.ListView.VertAlignType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIListViewVertAlignType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.ListView.VertAlignType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewVertAlignType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.VertAlignType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.ListView.VertAlignType");
                }
				val = (Yoozoo.UI.YGUI.ListView.VertAlignType)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.ListView.VertAlignType)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.ListView.VertAlignType))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIListViewVertAlignType(RealStatePtr L, int index, Yoozoo.UI.YGUI.ListView.VertAlignType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewVertAlignType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.VertAlignType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.ListView.VertAlignType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIListViewAlignType_TypeID = -1;
		int YoozooUIYGUIListViewAlignType_EnumRef = -1;
        
        public void PushYoozooUIYGUIListViewAlignType(RealStatePtr L, Yoozoo.UI.YGUI.ListView.AlignType val)
        {
            if (YoozooUIYGUIListViewAlignType_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIListViewAlignType_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.ListView.AlignType), out is_first);
				
				if (YoozooUIYGUIListViewAlignType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.ListView.AlignType));
				    YoozooUIYGUIListViewAlignType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIListViewAlignType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIListViewAlignType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.ListView.AlignType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIListViewAlignType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.ListView.AlignType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewAlignType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.AlignType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.ListView.AlignType");
                }
				val = (Yoozoo.UI.YGUI.ListView.AlignType)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.ListView.AlignType)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.ListView.AlignType))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIListViewAlignType(RealStatePtr L, int index, Yoozoo.UI.YGUI.ListView.AlignType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewAlignType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.AlignType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.ListView.AlignType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIListViewChildrenRenderOrder_TypeID = -1;
		int YoozooUIYGUIListViewChildrenRenderOrder_EnumRef = -1;
        
        public void PushYoozooUIYGUIListViewChildrenRenderOrder(RealStatePtr L, Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder val)
        {
            if (YoozooUIYGUIListViewChildrenRenderOrder_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIListViewChildrenRenderOrder_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder), out is_first);
				
				if (YoozooUIYGUIListViewChildrenRenderOrder_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder));
				    YoozooUIYGUIListViewChildrenRenderOrder_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIListViewChildrenRenderOrder_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIListViewChildrenRenderOrder_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIListViewChildrenRenderOrder_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewChildrenRenderOrder_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder");
                }
				val = (Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIListViewChildrenRenderOrder(RealStatePtr L, int index, Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIListViewChildrenRenderOrder_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID = -1;
		int YoozooModulesDownloadDownloadWhilePlayingManagerError_EnumRef = -1;
        
        public void PushYoozooModulesDownloadDownloadWhilePlayingManagerError(RealStatePtr L, Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error val)
        {
            if (YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID == -1)
            {
			    bool is_first;
                YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID = getTypeId(L, typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error), out is_first);
				
				if (YoozooModulesDownloadDownloadWhilePlayingManagerError_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error));
				    YoozooModulesDownloadDownloadWhilePlayingManagerError_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooModulesDownloadDownloadWhilePlayingManagerError_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooModulesDownloadDownloadWhilePlayingManagerError_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error");
                }
				val = (Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error)e;
                
            }
            else
            {
                val = (Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error)objectCasters.GetCaster(typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error))(L, index, null);
            }
        }
		
        public void UpdateYoozooModulesDownloadDownloadWhilePlayingManagerError(RealStatePtr L, int index, Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadDownloadWhilePlayingManagerError_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooModulesDownloadPreDownloadManagerError_TypeID = -1;
		int YoozooModulesDownloadPreDownloadManagerError_EnumRef = -1;
        
        public void PushYoozooModulesDownloadPreDownloadManagerError(RealStatePtr L, Yoozoo.Modules.Download.PreDownloadManager.Error val)
        {
            if (YoozooModulesDownloadPreDownloadManagerError_TypeID == -1)
            {
			    bool is_first;
                YoozooModulesDownloadPreDownloadManagerError_TypeID = getTypeId(L, typeof(Yoozoo.Modules.Download.PreDownloadManager.Error), out is_first);
				
				if (YoozooModulesDownloadPreDownloadManagerError_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Modules.Download.PreDownloadManager.Error));
				    YoozooModulesDownloadPreDownloadManagerError_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooModulesDownloadPreDownloadManagerError_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooModulesDownloadPreDownloadManagerError_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Modules.Download.PreDownloadManager.Error ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooModulesDownloadPreDownloadManagerError_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Modules.Download.PreDownloadManager.Error val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadPreDownloadManagerError_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.PreDownloadManager.Error");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Modules.Download.PreDownloadManager.Error");
                }
				val = (Yoozoo.Modules.Download.PreDownloadManager.Error)e;
                
            }
            else
            {
                val = (Yoozoo.Modules.Download.PreDownloadManager.Error)objectCasters.GetCaster(typeof(Yoozoo.Modules.Download.PreDownloadManager.Error))(L, index, null);
            }
        }
		
        public void UpdateYoozooModulesDownloadPreDownloadManagerError(RealStatePtr L, int index, Yoozoo.Modules.Download.PreDownloadManager.Error val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooModulesDownloadPreDownloadManagerError_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Modules.Download.PreDownloadManager.Error");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Modules.Download.PreDownloadManager.Error ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineBrainUpdateMethod_TypeID = -1;
		int CinemachineCinemachineBrainUpdateMethod_EnumRef = -1;
        
        public void PushCinemachineCinemachineBrainUpdateMethod(RealStatePtr L, Cinemachine.CinemachineBrain.UpdateMethod val)
        {
            if (CinemachineCinemachineBrainUpdateMethod_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineBrainUpdateMethod_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineBrain.UpdateMethod), out is_first);
				
				if (CinemachineCinemachineBrainUpdateMethod_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineBrain.UpdateMethod));
				    CinemachineCinemachineBrainUpdateMethod_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineBrainUpdateMethod_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineBrainUpdateMethod_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineBrain.UpdateMethod ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineBrainUpdateMethod_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineBrain.UpdateMethod val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBrainUpdateMethod_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBrain.UpdateMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineBrain.UpdateMethod");
                }
				val = (Cinemachine.CinemachineBrain.UpdateMethod)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineBrain.UpdateMethod)objectCasters.GetCaster(typeof(Cinemachine.CinemachineBrain.UpdateMethod))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineBrainUpdateMethod(RealStatePtr L, int index, Cinemachine.CinemachineBrain.UpdateMethod val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBrainUpdateMethod_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBrain.UpdateMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineBrain.UpdateMethod ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineBrainBrainUpdateMethod_TypeID = -1;
		int CinemachineCinemachineBrainBrainUpdateMethod_EnumRef = -1;
        
        public void PushCinemachineCinemachineBrainBrainUpdateMethod(RealStatePtr L, Cinemachine.CinemachineBrain.BrainUpdateMethod val)
        {
            if (CinemachineCinemachineBrainBrainUpdateMethod_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineBrainBrainUpdateMethod_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineBrain.BrainUpdateMethod), out is_first);
				
				if (CinemachineCinemachineBrainBrainUpdateMethod_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineBrain.BrainUpdateMethod));
				    CinemachineCinemachineBrainBrainUpdateMethod_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineBrainBrainUpdateMethod_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineBrainBrainUpdateMethod_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineBrain.BrainUpdateMethod ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineBrainBrainUpdateMethod_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineBrain.BrainUpdateMethod val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBrainBrainUpdateMethod_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBrain.BrainUpdateMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineBrain.BrainUpdateMethod");
                }
				val = (Cinemachine.CinemachineBrain.BrainUpdateMethod)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineBrain.BrainUpdateMethod)objectCasters.GetCaster(typeof(Cinemachine.CinemachineBrain.BrainUpdateMethod))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineBrainBrainUpdateMethod(RealStatePtr L, int index, Cinemachine.CinemachineBrain.BrainUpdateMethod val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBrainBrainUpdateMethod_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBrain.BrainUpdateMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineBrain.BrainUpdateMethod ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineBlendDefinitionStyle_TypeID = -1;
		int CinemachineCinemachineBlendDefinitionStyle_EnumRef = -1;
        
        public void PushCinemachineCinemachineBlendDefinitionStyle(RealStatePtr L, Cinemachine.CinemachineBlendDefinition.Style val)
        {
            if (CinemachineCinemachineBlendDefinitionStyle_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineBlendDefinitionStyle_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineBlendDefinition.Style), out is_first);
				
				if (CinemachineCinemachineBlendDefinitionStyle_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineBlendDefinition.Style));
				    CinemachineCinemachineBlendDefinitionStyle_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineBlendDefinitionStyle_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineBlendDefinitionStyle_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineBlendDefinition.Style ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineBlendDefinitionStyle_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineBlendDefinition.Style val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBlendDefinitionStyle_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBlendDefinition.Style");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineBlendDefinition.Style");
                }
				val = (Cinemachine.CinemachineBlendDefinition.Style)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineBlendDefinition.Style)objectCasters.GetCaster(typeof(Cinemachine.CinemachineBlendDefinition.Style))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineBlendDefinitionStyle(RealStatePtr L, int index, Cinemachine.CinemachineBlendDefinition.Style val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineBlendDefinitionStyle_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineBlendDefinition.Style");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineBlendDefinition.Style ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineTransposerBindingMode_TypeID = -1;
		int CinemachineCinemachineTransposerBindingMode_EnumRef = -1;
        
        public void PushCinemachineCinemachineTransposerBindingMode(RealStatePtr L, Cinemachine.CinemachineTransposer.BindingMode val)
        {
            if (CinemachineCinemachineTransposerBindingMode_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineTransposerBindingMode_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineTransposer.BindingMode), out is_first);
				
				if (CinemachineCinemachineTransposerBindingMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineTransposer.BindingMode));
				    CinemachineCinemachineTransposerBindingMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineTransposerBindingMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineTransposerBindingMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineTransposer.BindingMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineTransposerBindingMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineTransposer.BindingMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineTransposerBindingMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineTransposer.BindingMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineTransposer.BindingMode");
                }
				val = (Cinemachine.CinemachineTransposer.BindingMode)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineTransposer.BindingMode)objectCasters.GetCaster(typeof(Cinemachine.CinemachineTransposer.BindingMode))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineTransposerBindingMode(RealStatePtr L, int index, Cinemachine.CinemachineTransposer.BindingMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineTransposerBindingMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineTransposer.BindingMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineTransposer.BindingMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineTransposerAngularDampingMode_TypeID = -1;
		int CinemachineCinemachineTransposerAngularDampingMode_EnumRef = -1;
        
        public void PushCinemachineCinemachineTransposerAngularDampingMode(RealStatePtr L, Cinemachine.CinemachineTransposer.AngularDampingMode val)
        {
            if (CinemachineCinemachineTransposerAngularDampingMode_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineTransposerAngularDampingMode_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineTransposer.AngularDampingMode), out is_first);
				
				if (CinemachineCinemachineTransposerAngularDampingMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineTransposer.AngularDampingMode));
				    CinemachineCinemachineTransposerAngularDampingMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineTransposerAngularDampingMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineTransposerAngularDampingMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineTransposer.AngularDampingMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineTransposerAngularDampingMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineTransposer.AngularDampingMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineTransposerAngularDampingMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineTransposer.AngularDampingMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineTransposer.AngularDampingMode");
                }
				val = (Cinemachine.CinemachineTransposer.AngularDampingMode)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineTransposer.AngularDampingMode)objectCasters.GetCaster(typeof(Cinemachine.CinemachineTransposer.AngularDampingMode))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineTransposerAngularDampingMode(RealStatePtr L, int index, Cinemachine.CinemachineTransposer.AngularDampingMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineTransposerAngularDampingMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineTransposer.AngularDampingMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineTransposer.AngularDampingMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int Reporter_LogType_TypeID = -1;
		int Reporter_LogType_EnumRef = -1;
        
        public void PushReporter_LogType(RealStatePtr L, Reporter._LogType val)
        {
            if (Reporter_LogType_TypeID == -1)
            {
			    bool is_first;
                Reporter_LogType_TypeID = getTypeId(L, typeof(Reporter._LogType), out is_first);
				
				if (Reporter_LogType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Reporter._LogType));
				    Reporter_LogType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, Reporter_LogType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, Reporter_LogType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Reporter._LogType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, Reporter_LogType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Reporter._LogType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != Reporter_LogType_TypeID)
				{
				    throw new Exception("invalid userdata for Reporter._LogType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Reporter._LogType");
                }
				val = (Reporter._LogType)e;
                
            }
            else
            {
                val = (Reporter._LogType)objectCasters.GetCaster(typeof(Reporter._LogType))(L, index, null);
            }
        }
		
        public void UpdateReporter_LogType(RealStatePtr L, int index, Reporter._LogType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != Reporter_LogType_TypeID)
				{
				    throw new Exception("invalid userdata for Reporter._LogType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Reporter._LogType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int SystemReflectionBindingFlags_TypeID = -1;
		int SystemReflectionBindingFlags_EnumRef = -1;
        
        public void PushSystemReflectionBindingFlags(RealStatePtr L, System.Reflection.BindingFlags val)
        {
            if (SystemReflectionBindingFlags_TypeID == -1)
            {
			    bool is_first;
                SystemReflectionBindingFlags_TypeID = getTypeId(L, typeof(System.Reflection.BindingFlags), out is_first);
				
				if (SystemReflectionBindingFlags_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(System.Reflection.BindingFlags));
				    SystemReflectionBindingFlags_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, SystemReflectionBindingFlags_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, SystemReflectionBindingFlags_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for System.Reflection.BindingFlags ,value="+val);
            }
			
			LuaAPI.lua_getref(L, SystemReflectionBindingFlags_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out System.Reflection.BindingFlags val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemReflectionBindingFlags_TypeID)
				{
				    throw new Exception("invalid userdata for System.Reflection.BindingFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for System.Reflection.BindingFlags");
                }
				val = (System.Reflection.BindingFlags)e;
                
            }
            else
            {
                val = (System.Reflection.BindingFlags)objectCasters.GetCaster(typeof(System.Reflection.BindingFlags))(L, index, null);
            }
        }
		
        public void UpdateSystemReflectionBindingFlags(RealStatePtr L, int index, System.Reflection.BindingFlags val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemReflectionBindingFlags_TypeID)
				{
				    throw new Exception("invalid userdata for System.Reflection.BindingFlags");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for System.Reflection.BindingFlags ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int ReddotNodeReddotNodeType_TypeID = -1;
		int ReddotNodeReddotNodeType_EnumRef = -1;
        
        public void PushReddotNodeReddotNodeType(RealStatePtr L, ReddotNode.ReddotNodeType val)
        {
            if (ReddotNodeReddotNodeType_TypeID == -1)
            {
			    bool is_first;
                ReddotNodeReddotNodeType_TypeID = getTypeId(L, typeof(ReddotNode.ReddotNodeType), out is_first);
				
				if (ReddotNodeReddotNodeType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(ReddotNode.ReddotNodeType));
				    ReddotNodeReddotNodeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ReddotNodeReddotNodeType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ReddotNodeReddotNodeType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for ReddotNode.ReddotNodeType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, ReddotNodeReddotNodeType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out ReddotNode.ReddotNodeType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != ReddotNodeReddotNodeType_TypeID)
				{
				    throw new Exception("invalid userdata for ReddotNode.ReddotNodeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for ReddotNode.ReddotNodeType");
                }
				val = (ReddotNode.ReddotNodeType)e;
                
            }
            else
            {
                val = (ReddotNode.ReddotNodeType)objectCasters.GetCaster(typeof(ReddotNode.ReddotNodeType))(L, index, null);
            }
        }
		
        public void UpdateReddotNodeReddotNodeType(RealStatePtr L, int index, ReddotNode.ReddotNodeType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != ReddotNodeReddotNodeType_TypeID)
				{
				    throw new Exception("invalid userdata for ReddotNode.ReddotNodeType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for ReddotNode.ReddotNodeType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIGraphicRaycasterBlockingObjects_TypeID = -1;
		int UnityEngineUIGraphicRaycasterBlockingObjects_EnumRef = -1;
        
        public void PushUnityEngineUIGraphicRaycasterBlockingObjects(RealStatePtr L, UnityEngine.UI.GraphicRaycaster.BlockingObjects val)
        {
            if (UnityEngineUIGraphicRaycasterBlockingObjects_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIGraphicRaycasterBlockingObjects_TypeID = getTypeId(L, typeof(UnityEngine.UI.GraphicRaycaster.BlockingObjects), out is_first);
				
				if (UnityEngineUIGraphicRaycasterBlockingObjects_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.GraphicRaycaster.BlockingObjects));
				    UnityEngineUIGraphicRaycasterBlockingObjects_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIGraphicRaycasterBlockingObjects_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIGraphicRaycasterBlockingObjects_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.GraphicRaycaster.BlockingObjects ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIGraphicRaycasterBlockingObjects_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.GraphicRaycaster.BlockingObjects val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGraphicRaycasterBlockingObjects_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GraphicRaycaster.BlockingObjects");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.GraphicRaycaster.BlockingObjects");
                }
				val = (UnityEngine.UI.GraphicRaycaster.BlockingObjects)e;
                
            }
            else
            {
                val = (UnityEngine.UI.GraphicRaycaster.BlockingObjects)objectCasters.GetCaster(typeof(UnityEngine.UI.GraphicRaycaster.BlockingObjects))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIGraphicRaycasterBlockingObjects(RealStatePtr L, int index, UnityEngine.UI.GraphicRaycaster.BlockingObjects val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIGraphicRaycasterBlockingObjects_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.GraphicRaycaster.BlockingObjects");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.GraphicRaycaster.BlockingObjects ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUICanvasScalerScaleMode_TypeID = -1;
		int UnityEngineUICanvasScalerScaleMode_EnumRef = -1;
        
        public void PushUnityEngineUICanvasScalerScaleMode(RealStatePtr L, UnityEngine.UI.CanvasScaler.ScaleMode val)
        {
            if (UnityEngineUICanvasScalerScaleMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUICanvasScalerScaleMode_TypeID = getTypeId(L, typeof(UnityEngine.UI.CanvasScaler.ScaleMode), out is_first);
				
				if (UnityEngineUICanvasScalerScaleMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.CanvasScaler.ScaleMode));
				    UnityEngineUICanvasScalerScaleMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUICanvasScalerScaleMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUICanvasScalerScaleMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.CanvasScaler.ScaleMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUICanvasScalerScaleMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.CanvasScaler.ScaleMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerScaleMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.ScaleMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.CanvasScaler.ScaleMode");
                }
				val = (UnityEngine.UI.CanvasScaler.ScaleMode)e;
                
            }
            else
            {
                val = (UnityEngine.UI.CanvasScaler.ScaleMode)objectCasters.GetCaster(typeof(UnityEngine.UI.CanvasScaler.ScaleMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUICanvasScalerScaleMode(RealStatePtr L, int index, UnityEngine.UI.CanvasScaler.ScaleMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerScaleMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.ScaleMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.CanvasScaler.ScaleMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUICanvasScalerScreenMatchMode_TypeID = -1;
		int UnityEngineUICanvasScalerScreenMatchMode_EnumRef = -1;
        
        public void PushUnityEngineUICanvasScalerScreenMatchMode(RealStatePtr L, UnityEngine.UI.CanvasScaler.ScreenMatchMode val)
        {
            if (UnityEngineUICanvasScalerScreenMatchMode_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUICanvasScalerScreenMatchMode_TypeID = getTypeId(L, typeof(UnityEngine.UI.CanvasScaler.ScreenMatchMode), out is_first);
				
				if (UnityEngineUICanvasScalerScreenMatchMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.CanvasScaler.ScreenMatchMode));
				    UnityEngineUICanvasScalerScreenMatchMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUICanvasScalerScreenMatchMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUICanvasScalerScreenMatchMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.CanvasScaler.ScreenMatchMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUICanvasScalerScreenMatchMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.CanvasScaler.ScreenMatchMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerScreenMatchMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.ScreenMatchMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.CanvasScaler.ScreenMatchMode");
                }
				val = (UnityEngine.UI.CanvasScaler.ScreenMatchMode)e;
                
            }
            else
            {
                val = (UnityEngine.UI.CanvasScaler.ScreenMatchMode)objectCasters.GetCaster(typeof(UnityEngine.UI.CanvasScaler.ScreenMatchMode))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUICanvasScalerScreenMatchMode(RealStatePtr L, int index, UnityEngine.UI.CanvasScaler.ScreenMatchMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerScreenMatchMode_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.ScreenMatchMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.CanvasScaler.ScreenMatchMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUICanvasScalerUnit_TypeID = -1;
		int UnityEngineUICanvasScalerUnit_EnumRef = -1;
        
        public void PushUnityEngineUICanvasScalerUnit(RealStatePtr L, UnityEngine.UI.CanvasScaler.Unit val)
        {
            if (UnityEngineUICanvasScalerUnit_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUICanvasScalerUnit_TypeID = getTypeId(L, typeof(UnityEngine.UI.CanvasScaler.Unit), out is_first);
				
				if (UnityEngineUICanvasScalerUnit_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.CanvasScaler.Unit));
				    UnityEngineUICanvasScalerUnit_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUICanvasScalerUnit_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUICanvasScalerUnit_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.CanvasScaler.Unit ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUICanvasScalerUnit_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.CanvasScaler.Unit val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerUnit_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.Unit");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.CanvasScaler.Unit");
                }
				val = (UnityEngine.UI.CanvasScaler.Unit)e;
                
            }
            else
            {
                val = (UnityEngine.UI.CanvasScaler.Unit)objectCasters.GetCaster(typeof(UnityEngine.UI.CanvasScaler.Unit))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUICanvasScalerUnit(RealStatePtr L, int index, UnityEngine.UI.CanvasScaler.Unit val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUICanvasScalerUnit_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.CanvasScaler.Unit");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.CanvasScaler.Unit ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageType_TypeID = -1;
		int UnityEngineUIImageType_EnumRef = -1;
        
        public void PushUnityEngineUIImageType(RealStatePtr L, UnityEngine.UI.Image.Type val)
        {
            if (UnityEngineUIImageType_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageType_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.Type), out is_first);
				
				if (UnityEngineUIImageType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.Type));
				    UnityEngineUIImageType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.Type ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.Type val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Type");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.Type");
                }
				val = (UnityEngine.UI.Image.Type)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.Type)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.Type))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageType(RealStatePtr L, int index, UnityEngine.UI.Image.Type val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageType_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Type");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.Type ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageFillMethod_TypeID = -1;
		int UnityEngineUIImageFillMethod_EnumRef = -1;
        
        public void PushUnityEngineUIImageFillMethod(RealStatePtr L, UnityEngine.UI.Image.FillMethod val)
        {
            if (UnityEngineUIImageFillMethod_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageFillMethod_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.FillMethod), out is_first);
				
				if (UnityEngineUIImageFillMethod_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.FillMethod));
				    UnityEngineUIImageFillMethod_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageFillMethod_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageFillMethod_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.FillMethod ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageFillMethod_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.FillMethod val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageFillMethod_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.FillMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.FillMethod");
                }
				val = (UnityEngine.UI.Image.FillMethod)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.FillMethod)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.FillMethod))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageFillMethod(RealStatePtr L, int index, UnityEngine.UI.Image.FillMethod val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageFillMethod_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.FillMethod");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.FillMethod ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageOriginHorizontal_TypeID = -1;
		int UnityEngineUIImageOriginHorizontal_EnumRef = -1;
        
        public void PushUnityEngineUIImageOriginHorizontal(RealStatePtr L, UnityEngine.UI.Image.OriginHorizontal val)
        {
            if (UnityEngineUIImageOriginHorizontal_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageOriginHorizontal_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.OriginHorizontal), out is_first);
				
				if (UnityEngineUIImageOriginHorizontal_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.OriginHorizontal));
				    UnityEngineUIImageOriginHorizontal_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageOriginHorizontal_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageOriginHorizontal_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.OriginHorizontal ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageOriginHorizontal_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.OriginHorizontal val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOriginHorizontal_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.OriginHorizontal");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.OriginHorizontal");
                }
				val = (UnityEngine.UI.Image.OriginHorizontal)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.OriginHorizontal)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.OriginHorizontal))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageOriginHorizontal(RealStatePtr L, int index, UnityEngine.UI.Image.OriginHorizontal val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOriginHorizontal_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.OriginHorizontal");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.OriginHorizontal ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageOriginVertical_TypeID = -1;
		int UnityEngineUIImageOriginVertical_EnumRef = -1;
        
        public void PushUnityEngineUIImageOriginVertical(RealStatePtr L, UnityEngine.UI.Image.OriginVertical val)
        {
            if (UnityEngineUIImageOriginVertical_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageOriginVertical_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.OriginVertical), out is_first);
				
				if (UnityEngineUIImageOriginVertical_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.OriginVertical));
				    UnityEngineUIImageOriginVertical_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageOriginVertical_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageOriginVertical_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.OriginVertical ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageOriginVertical_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.OriginVertical val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOriginVertical_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.OriginVertical");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.OriginVertical");
                }
				val = (UnityEngine.UI.Image.OriginVertical)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.OriginVertical)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.OriginVertical))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageOriginVertical(RealStatePtr L, int index, UnityEngine.UI.Image.OriginVertical val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOriginVertical_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.OriginVertical");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.OriginVertical ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageOrigin90_TypeID = -1;
		int UnityEngineUIImageOrigin90_EnumRef = -1;
        
        public void PushUnityEngineUIImageOrigin90(RealStatePtr L, UnityEngine.UI.Image.Origin90 val)
        {
            if (UnityEngineUIImageOrigin90_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageOrigin90_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.Origin90), out is_first);
				
				if (UnityEngineUIImageOrigin90_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.Origin90));
				    UnityEngineUIImageOrigin90_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageOrigin90_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageOrigin90_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.Origin90 ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageOrigin90_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.Origin90 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin90_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin90");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.Origin90");
                }
				val = (UnityEngine.UI.Image.Origin90)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.Origin90)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.Origin90))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageOrigin90(RealStatePtr L, int index, UnityEngine.UI.Image.Origin90 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin90_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin90");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.Origin90 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageOrigin180_TypeID = -1;
		int UnityEngineUIImageOrigin180_EnumRef = -1;
        
        public void PushUnityEngineUIImageOrigin180(RealStatePtr L, UnityEngine.UI.Image.Origin180 val)
        {
            if (UnityEngineUIImageOrigin180_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageOrigin180_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.Origin180), out is_first);
				
				if (UnityEngineUIImageOrigin180_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.Origin180));
				    UnityEngineUIImageOrigin180_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageOrigin180_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageOrigin180_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.Origin180 ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageOrigin180_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.Origin180 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin180_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin180");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.Origin180");
                }
				val = (UnityEngine.UI.Image.Origin180)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.Origin180)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.Origin180))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageOrigin180(RealStatePtr L, int index, UnityEngine.UI.Image.Origin180 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin180_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin180");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.Origin180 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUIImageOrigin360_TypeID = -1;
		int UnityEngineUIImageOrigin360_EnumRef = -1;
        
        public void PushUnityEngineUIImageOrigin360(RealStatePtr L, UnityEngine.UI.Image.Origin360 val)
        {
            if (UnityEngineUIImageOrigin360_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUIImageOrigin360_TypeID = getTypeId(L, typeof(UnityEngine.UI.Image.Origin360), out is_first);
				
				if (UnityEngineUIImageOrigin360_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Image.Origin360));
				    UnityEngineUIImageOrigin360_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUIImageOrigin360_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUIImageOrigin360_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Image.Origin360 ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUIImageOrigin360_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Image.Origin360 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin360_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin360");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Image.Origin360");
                }
				val = (UnityEngine.UI.Image.Origin360)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Image.Origin360)objectCasters.GetCaster(typeof(UnityEngine.UI.Image.Origin360))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUIImageOrigin360(RealStatePtr L, int index, UnityEngine.UI.Image.Origin360 val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUIImageOrigin360_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Image.Origin360");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Image.Origin360 ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYScrollRectDirection_TypeID = -1;
		int YoozooUIYGUIYScrollRectDirection_EnumRef = -1;
        
        public void PushYoozooUIYGUIYScrollRectDirection(RealStatePtr L, Yoozoo.UI.YGUI.YScrollRect.Direction val)
        {
            if (YoozooUIYGUIYScrollRectDirection_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYScrollRectDirection_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YScrollRect.Direction), out is_first);
				
				if (YoozooUIYGUIYScrollRectDirection_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YScrollRect.Direction));
				    YoozooUIYGUIYScrollRectDirection_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYScrollRectDirection_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYScrollRectDirection_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YScrollRect.Direction ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYScrollRectDirection_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YScrollRect.Direction val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YScrollRect.Direction");
                }
				val = (Yoozoo.UI.YGUI.YScrollRect.Direction)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YScrollRect.Direction)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YScrollRect.Direction))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYScrollRectDirection(RealStatePtr L, int index, Yoozoo.UI.YGUI.YScrollRect.Direction val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectDirection_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.Direction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YScrollRect.Direction ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYScrollRectMovementType_TypeID = -1;
		int YoozooUIYGUIYScrollRectMovementType_EnumRef = -1;
        
        public void PushYoozooUIYGUIYScrollRectMovementType(RealStatePtr L, Yoozoo.UI.YGUI.YScrollRect.MovementType val)
        {
            if (YoozooUIYGUIYScrollRectMovementType_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYScrollRectMovementType_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YScrollRect.MovementType), out is_first);
				
				if (YoozooUIYGUIYScrollRectMovementType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YScrollRect.MovementType));
				    YoozooUIYGUIYScrollRectMovementType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYScrollRectMovementType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYScrollRectMovementType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YScrollRect.MovementType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYScrollRectMovementType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YScrollRect.MovementType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectMovementType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.MovementType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YScrollRect.MovementType");
                }
				val = (Yoozoo.UI.YGUI.YScrollRect.MovementType)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YScrollRect.MovementType)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YScrollRect.MovementType))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYScrollRectMovementType(RealStatePtr L, int index, Yoozoo.UI.YGUI.YScrollRect.MovementType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectMovementType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.MovementType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YScrollRect.MovementType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID = -1;
		int YoozooUIYGUIYScrollRectScrollbarVisibility_EnumRef = -1;
        
        public void PushYoozooUIYGUIYScrollRectScrollbarVisibility(RealStatePtr L, Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility val)
        {
            if (YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID == -1)
            {
			    bool is_first;
                YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID = getTypeId(L, typeof(Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility), out is_first);
				
				if (YoozooUIYGUIYScrollRectScrollbarVisibility_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility));
				    YoozooUIYGUIYScrollRectScrollbarVisibility_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooUIYGUIYScrollRectScrollbarVisibility_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooUIYGUIYScrollRectScrollbarVisibility_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility");
                }
				val = (Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility)e;
                
            }
            else
            {
                val = (Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility)objectCasters.GetCaster(typeof(Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility))(L, index, null);
            }
        }
		
        public void UpdateYoozooUIYGUIYScrollRectScrollbarVisibility(RealStatePtr L, int index, Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooUIYGUIYScrollRectScrollbarVisibility_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int UnityEngineUISelectableTransition_TypeID = -1;
		int UnityEngineUISelectableTransition_EnumRef = -1;
        
        public void PushUnityEngineUISelectableTransition(RealStatePtr L, UnityEngine.UI.Selectable.Transition val)
        {
            if (UnityEngineUISelectableTransition_TypeID == -1)
            {
			    bool is_first;
                UnityEngineUISelectableTransition_TypeID = getTypeId(L, typeof(UnityEngine.UI.Selectable.Transition), out is_first);
				
				if (UnityEngineUISelectableTransition_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(UnityEngine.UI.Selectable.Transition));
				    UnityEngineUISelectableTransition_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityEngineUISelectableTransition_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityEngineUISelectableTransition_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for UnityEngine.UI.Selectable.Transition ,value="+val);
            }
			
			LuaAPI.lua_getref(L, UnityEngineUISelectableTransition_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out UnityEngine.UI.Selectable.Transition val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUISelectableTransition_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Selectable.Transition");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for UnityEngine.UI.Selectable.Transition");
                }
				val = (UnityEngine.UI.Selectable.Transition)e;
                
            }
            else
            {
                val = (UnityEngine.UI.Selectable.Transition)objectCasters.GetCaster(typeof(UnityEngine.UI.Selectable.Transition))(L, index, null);
            }
        }
		
        public void UpdateUnityEngineUISelectableTransition(RealStatePtr L, int index, UnityEngine.UI.Selectable.Transition val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != UnityEngineUISelectableTransition_TypeID)
				{
				    throw new Exception("invalid userdata for UnityEngine.UI.Selectable.Transition");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for UnityEngine.UI.Selectable.Transition ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int MopsicusPluginsMobileInputFieldReturnKeyType_TypeID = -1;
		int MopsicusPluginsMobileInputFieldReturnKeyType_EnumRef = -1;
        
        public void PushMopsicusPluginsMobileInputFieldReturnKeyType(RealStatePtr L, Mopsicus.Plugins.MobileInputField.ReturnKeyType val)
        {
            if (MopsicusPluginsMobileInputFieldReturnKeyType_TypeID == -1)
            {
			    bool is_first;
                MopsicusPluginsMobileInputFieldReturnKeyType_TypeID = getTypeId(L, typeof(Mopsicus.Plugins.MobileInputField.ReturnKeyType), out is_first);
				
				if (MopsicusPluginsMobileInputFieldReturnKeyType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Mopsicus.Plugins.MobileInputField.ReturnKeyType));
				    MopsicusPluginsMobileInputFieldReturnKeyType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, MopsicusPluginsMobileInputFieldReturnKeyType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, MopsicusPluginsMobileInputFieldReturnKeyType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Mopsicus.Plugins.MobileInputField.ReturnKeyType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, MopsicusPluginsMobileInputFieldReturnKeyType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Mopsicus.Plugins.MobileInputField.ReturnKeyType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != MopsicusPluginsMobileInputFieldReturnKeyType_TypeID)
				{
				    throw new Exception("invalid userdata for Mopsicus.Plugins.MobileInputField.ReturnKeyType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Mopsicus.Plugins.MobileInputField.ReturnKeyType");
                }
				val = (Mopsicus.Plugins.MobileInputField.ReturnKeyType)e;
                
            }
            else
            {
                val = (Mopsicus.Plugins.MobileInputField.ReturnKeyType)objectCasters.GetCaster(typeof(Mopsicus.Plugins.MobileInputField.ReturnKeyType))(L, index, null);
            }
        }
		
        public void UpdateMopsicusPluginsMobileInputFieldReturnKeyType(RealStatePtr L, int index, Mopsicus.Plugins.MobileInputField.ReturnKeyType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != MopsicusPluginsMobileInputFieldReturnKeyType_TypeID)
				{
				    throw new Exception("invalid userdata for Mopsicus.Plugins.MobileInputField.ReturnKeyType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Mopsicus.Plugins.MobileInputField.ReturnKeyType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID = -1;
		int CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_EnumRef = -1;
        
        public void PushCinemachineCinemachineVirtualCameraBaseStandbyUpdateMode(RealStatePtr L, Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode val)
        {
            if (CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode), out is_first);
				
				if (CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode));
				    CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode");
                }
				val = (Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode)objectCasters.GetCaster(typeof(Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineVirtualCameraBaseStandbyUpdateMode(RealStatePtr L, int index, Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineVirtualCameraBaseStandbyUpdateMode_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID = -1;
		int CinemachineCinemachineVirtualCameraBaseBlendHint_EnumRef = -1;
        
        public void PushCinemachineCinemachineVirtualCameraBaseBlendHint(RealStatePtr L, Cinemachine.CinemachineVirtualCameraBase.BlendHint val)
        {
            if (CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID == -1)
            {
			    bool is_first;
                CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID = getTypeId(L, typeof(Cinemachine.CinemachineVirtualCameraBase.BlendHint), out is_first);
				
				if (CinemachineCinemachineVirtualCameraBaseBlendHint_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Cinemachine.CinemachineVirtualCameraBase.BlendHint));
				    CinemachineCinemachineVirtualCameraBaseBlendHint_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, CinemachineCinemachineVirtualCameraBaseBlendHint_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Cinemachine.CinemachineVirtualCameraBase.BlendHint ,value="+val);
            }
			
			LuaAPI.lua_getref(L, CinemachineCinemachineVirtualCameraBaseBlendHint_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Cinemachine.CinemachineVirtualCameraBase.BlendHint val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineVirtualCameraBase.BlendHint");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Cinemachine.CinemachineVirtualCameraBase.BlendHint");
                }
				val = (Cinemachine.CinemachineVirtualCameraBase.BlendHint)e;
                
            }
            else
            {
                val = (Cinemachine.CinemachineVirtualCameraBase.BlendHint)objectCasters.GetCaster(typeof(Cinemachine.CinemachineVirtualCameraBase.BlendHint))(L, index, null);
            }
        }
		
        public void UpdateCinemachineCinemachineVirtualCameraBaseBlendHint(RealStatePtr L, int index, Cinemachine.CinemachineVirtualCameraBase.BlendHint val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != CinemachineCinemachineVirtualCameraBaseBlendHint_TypeID)
				{
				    throw new Exception("invalid userdata for Cinemachine.CinemachineVirtualCameraBase.BlendHint");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Cinemachine.CinemachineVirtualCameraBase.BlendHint ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int MarchEntitySquareAction_TypeID = -1;
		int MarchEntitySquareAction_EnumRef = -1;
        
        public void PushMarchEntitySquareAction(RealStatePtr L, MarchEntity.SquareAction val)
        {
            if (MarchEntitySquareAction_TypeID == -1)
            {
			    bool is_first;
                MarchEntitySquareAction_TypeID = getTypeId(L, typeof(MarchEntity.SquareAction), out is_first);
				
				if (MarchEntitySquareAction_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(MarchEntity.SquareAction));
				    MarchEntitySquareAction_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, MarchEntitySquareAction_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, MarchEntitySquareAction_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for MarchEntity.SquareAction ,value="+val);
            }
			
			LuaAPI.lua_getref(L, MarchEntitySquareAction_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out MarchEntity.SquareAction val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != MarchEntitySquareAction_TypeID)
				{
				    throw new Exception("invalid userdata for MarchEntity.SquareAction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for MarchEntity.SquareAction");
                }
				val = (MarchEntity.SquareAction)e;
                
            }
            else
            {
                val = (MarchEntity.SquareAction)objectCasters.GetCaster(typeof(MarchEntity.SquareAction))(L, index, null);
            }
        }
		
        public void UpdateMarchEntitySquareAction(RealStatePtr L, int index, MarchEntity.SquareAction val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != MarchEntitySquareAction_TypeID)
				{
				    throw new Exception("invalid userdata for MarchEntity.SquareAction");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for MarchEntity.SquareAction ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int comyouzuwarhprotocolNormalAttackType_TypeID = -1;
		int comyouzuwarhprotocolNormalAttackType_EnumRef = -1;
        
        public void PushcomyouzuwarhprotocolNormalAttackType(RealStatePtr L, com.youzu.warh.protocol.NormalAttackType val)
        {
            if (comyouzuwarhprotocolNormalAttackType_TypeID == -1)
            {
			    bool is_first;
                comyouzuwarhprotocolNormalAttackType_TypeID = getTypeId(L, typeof(com.youzu.warh.protocol.NormalAttackType), out is_first);
				
				if (comyouzuwarhprotocolNormalAttackType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(com.youzu.warh.protocol.NormalAttackType));
				    comyouzuwarhprotocolNormalAttackType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, comyouzuwarhprotocolNormalAttackType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, comyouzuwarhprotocolNormalAttackType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for com.youzu.warh.protocol.NormalAttackType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, comyouzuwarhprotocolNormalAttackType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out com.youzu.warh.protocol.NormalAttackType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolNormalAttackType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.NormalAttackType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for com.youzu.warh.protocol.NormalAttackType");
                }
				val = (com.youzu.warh.protocol.NormalAttackType)e;
                
            }
            else
            {
                val = (com.youzu.warh.protocol.NormalAttackType)objectCasters.GetCaster(typeof(com.youzu.warh.protocol.NormalAttackType))(L, index, null);
            }
        }
		
        public void UpdatecomyouzuwarhprotocolNormalAttackType(RealStatePtr L, int index, com.youzu.warh.protocol.NormalAttackType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolNormalAttackType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.NormalAttackType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for com.youzu.warh.protocol.NormalAttackType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int comyouzuwarhprotocolBattleMountUnitType_TypeID = -1;
		int comyouzuwarhprotocolBattleMountUnitType_EnumRef = -1;
        
        public void PushcomyouzuwarhprotocolBattleMountUnitType(RealStatePtr L, com.youzu.warh.protocol.BattleMountUnitType val)
        {
            if (comyouzuwarhprotocolBattleMountUnitType_TypeID == -1)
            {
			    bool is_first;
                comyouzuwarhprotocolBattleMountUnitType_TypeID = getTypeId(L, typeof(com.youzu.warh.protocol.BattleMountUnitType), out is_first);
				
				if (comyouzuwarhprotocolBattleMountUnitType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(com.youzu.warh.protocol.BattleMountUnitType));
				    comyouzuwarhprotocolBattleMountUnitType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, comyouzuwarhprotocolBattleMountUnitType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, comyouzuwarhprotocolBattleMountUnitType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for com.youzu.warh.protocol.BattleMountUnitType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, comyouzuwarhprotocolBattleMountUnitType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out com.youzu.warh.protocol.BattleMountUnitType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolBattleMountUnitType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.BattleMountUnitType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for com.youzu.warh.protocol.BattleMountUnitType");
                }
				val = (com.youzu.warh.protocol.BattleMountUnitType)e;
                
            }
            else
            {
                val = (com.youzu.warh.protocol.BattleMountUnitType)objectCasters.GetCaster(typeof(com.youzu.warh.protocol.BattleMountUnitType))(L, index, null);
            }
        }
		
        public void UpdatecomyouzuwarhprotocolBattleMountUnitType(RealStatePtr L, int index, com.youzu.warh.protocol.BattleMountUnitType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolBattleMountUnitType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.BattleMountUnitType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for com.youzu.warh.protocol.BattleMountUnitType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int comyouzuwarhprotocolResource_TypeID = -1;
		int comyouzuwarhprotocolResource_EnumRef = -1;
        
        public void PushcomyouzuwarhprotocolResource(RealStatePtr L, com.youzu.warh.protocol.Resource val)
        {
            if (comyouzuwarhprotocolResource_TypeID == -1)
            {
			    bool is_first;
                comyouzuwarhprotocolResource_TypeID = getTypeId(L, typeof(com.youzu.warh.protocol.Resource), out is_first);
				
				if (comyouzuwarhprotocolResource_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(com.youzu.warh.protocol.Resource));
				    comyouzuwarhprotocolResource_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, comyouzuwarhprotocolResource_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, comyouzuwarhprotocolResource_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for com.youzu.warh.protocol.Resource ,value="+val);
            }
			
			LuaAPI.lua_getref(L, comyouzuwarhprotocolResource_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out com.youzu.warh.protocol.Resource val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolResource_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.Resource");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for com.youzu.warh.protocol.Resource");
                }
				val = (com.youzu.warh.protocol.Resource)e;
                
            }
            else
            {
                val = (com.youzu.warh.protocol.Resource)objectCasters.GetCaster(typeof(com.youzu.warh.protocol.Resource))(L, index, null);
            }
        }
		
        public void UpdatecomyouzuwarhprotocolResource(RealStatePtr L, int index, com.youzu.warh.protocol.Resource val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolResource_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.Resource");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for com.youzu.warh.protocol.Resource ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int comyouzuwarhprotocolTargetCoordinateType_TypeID = -1;
		int comyouzuwarhprotocolTargetCoordinateType_EnumRef = -1;
        
        public void PushcomyouzuwarhprotocolTargetCoordinateType(RealStatePtr L, com.youzu.warh.protocol.TargetCoordinateType val)
        {
            if (comyouzuwarhprotocolTargetCoordinateType_TypeID == -1)
            {
			    bool is_first;
                comyouzuwarhprotocolTargetCoordinateType_TypeID = getTypeId(L, typeof(com.youzu.warh.protocol.TargetCoordinateType), out is_first);
				
				if (comyouzuwarhprotocolTargetCoordinateType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(com.youzu.warh.protocol.TargetCoordinateType));
				    comyouzuwarhprotocolTargetCoordinateType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, comyouzuwarhprotocolTargetCoordinateType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, comyouzuwarhprotocolTargetCoordinateType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for com.youzu.warh.protocol.TargetCoordinateType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, comyouzuwarhprotocolTargetCoordinateType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out com.youzu.warh.protocol.TargetCoordinateType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolTargetCoordinateType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.TargetCoordinateType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for com.youzu.warh.protocol.TargetCoordinateType");
                }
				val = (com.youzu.warh.protocol.TargetCoordinateType)e;
                
            }
            else
            {
                val = (com.youzu.warh.protocol.TargetCoordinateType)objectCasters.GetCaster(typeof(com.youzu.warh.protocol.TargetCoordinateType))(L, index, null);
            }
        }
		
        public void UpdatecomyouzuwarhprotocolTargetCoordinateType(RealStatePtr L, int index, com.youzu.warh.protocol.TargetCoordinateType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != comyouzuwarhprotocolTargetCoordinateType_TypeID)
				{
				    throw new Exception("invalid userdata for com.youzu.warh.protocol.TargetCoordinateType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for com.youzu.warh.protocol.TargetCoordinateType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayLibertyPlayerControllerControlMode_TypeID = -1;
		int YoozooGameplayLibertyPlayerControllerControlMode_EnumRef = -1;
        
        public void PushYoozooGameplayLibertyPlayerControllerControlMode(RealStatePtr L, Yoozoo.Gameplay.Liberty.PlayerController.ControlMode val)
        {
            if (YoozooGameplayLibertyPlayerControllerControlMode_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayLibertyPlayerControllerControlMode_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.Liberty.PlayerController.ControlMode), out is_first);
				
				if (YoozooGameplayLibertyPlayerControllerControlMode_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.Liberty.PlayerController.ControlMode));
				    YoozooGameplayLibertyPlayerControllerControlMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayLibertyPlayerControllerControlMode_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayLibertyPlayerControllerControlMode_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.Liberty.PlayerController.ControlMode ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayLibertyPlayerControllerControlMode_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.Liberty.PlayerController.ControlMode val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyPlayerControllerControlMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.PlayerController.ControlMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.Liberty.PlayerController.ControlMode");
                }
				val = (Yoozoo.Gameplay.Liberty.PlayerController.ControlMode)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.Liberty.PlayerController.ControlMode)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.Liberty.PlayerController.ControlMode))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayLibertyPlayerControllerControlMode(RealStatePtr L, int index, Yoozoo.Gameplay.Liberty.PlayerController.ControlMode val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyPlayerControllerControlMode_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.PlayerController.ControlMode");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.Liberty.PlayerController.ControlMode ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID = -1;
		int YoozooGameplayLibertyPlayerControllerEnterExitCarState_EnumRef = -1;
        
        public void PushYoozooGameplayLibertyPlayerControllerEnterExitCarState(RealStatePtr L, Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState val)
        {
            if (YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState), out is_first);
				
				if (YoozooGameplayLibertyPlayerControllerEnterExitCarState_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState));
				    YoozooGameplayLibertyPlayerControllerEnterExitCarState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayLibertyPlayerControllerEnterExitCarState_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayLibertyPlayerControllerEnterExitCarState_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState");
                }
				val = (Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayLibertyPlayerControllerEnterExitCarState(RealStatePtr L, int index, Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayLibertyPlayerControllerEnterExitCarState_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int SystemNetNetworkInformationNetworkInterfaceType_TypeID = -1;
		int SystemNetNetworkInformationNetworkInterfaceType_EnumRef = -1;
        
        public void PushSystemNetNetworkInformationNetworkInterfaceType(RealStatePtr L, System.Net.NetworkInformation.NetworkInterfaceType val)
        {
            if (SystemNetNetworkInformationNetworkInterfaceType_TypeID == -1)
            {
			    bool is_first;
                SystemNetNetworkInformationNetworkInterfaceType_TypeID = getTypeId(L, typeof(System.Net.NetworkInformation.NetworkInterfaceType), out is_first);
				
				if (SystemNetNetworkInformationNetworkInterfaceType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(System.Net.NetworkInformation.NetworkInterfaceType));
				    SystemNetNetworkInformationNetworkInterfaceType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, SystemNetNetworkInformationNetworkInterfaceType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, SystemNetNetworkInformationNetworkInterfaceType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for System.Net.NetworkInformation.NetworkInterfaceType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, SystemNetNetworkInformationNetworkInterfaceType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out System.Net.NetworkInformation.NetworkInterfaceType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemNetNetworkInformationNetworkInterfaceType_TypeID)
				{
				    throw new Exception("invalid userdata for System.Net.NetworkInformation.NetworkInterfaceType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for System.Net.NetworkInformation.NetworkInterfaceType");
                }
				val = (System.Net.NetworkInformation.NetworkInterfaceType)e;
                
            }
            else
            {
                val = (System.Net.NetworkInformation.NetworkInterfaceType)objectCasters.GetCaster(typeof(System.Net.NetworkInformation.NetworkInterfaceType))(L, index, null);
            }
        }
		
        public void UpdateSystemNetNetworkInformationNetworkInterfaceType(RealStatePtr L, int index, System.Net.NetworkInformation.NetworkInterfaceType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemNetNetworkInformationNetworkInterfaceType_TypeID)
				{
				    throw new Exception("invalid userdata for System.Net.NetworkInformation.NetworkInterfaceType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for System.Net.NetworkInformation.NetworkInterfaceType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int SystemNetSocketsAddressFamily_TypeID = -1;
		int SystemNetSocketsAddressFamily_EnumRef = -1;
        
        public void PushSystemNetSocketsAddressFamily(RealStatePtr L, System.Net.Sockets.AddressFamily val)
        {
            if (SystemNetSocketsAddressFamily_TypeID == -1)
            {
			    bool is_first;
                SystemNetSocketsAddressFamily_TypeID = getTypeId(L, typeof(System.Net.Sockets.AddressFamily), out is_first);
				
				if (SystemNetSocketsAddressFamily_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(System.Net.Sockets.AddressFamily));
				    SystemNetSocketsAddressFamily_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, SystemNetSocketsAddressFamily_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, SystemNetSocketsAddressFamily_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for System.Net.Sockets.AddressFamily ,value="+val);
            }
			
			LuaAPI.lua_getref(L, SystemNetSocketsAddressFamily_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out System.Net.Sockets.AddressFamily val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemNetSocketsAddressFamily_TypeID)
				{
				    throw new Exception("invalid userdata for System.Net.Sockets.AddressFamily");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for System.Net.Sockets.AddressFamily");
                }
				val = (System.Net.Sockets.AddressFamily)e;
                
            }
            else
            {
                val = (System.Net.Sockets.AddressFamily)objectCasters.GetCaster(typeof(System.Net.Sockets.AddressFamily))(L, index, null);
            }
        }
		
        public void UpdateSystemNetSocketsAddressFamily(RealStatePtr L, int index, System.Net.Sockets.AddressFamily val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != SystemNetSocketsAddressFamily_TypeID)
				{
				    throw new Exception("invalid userdata for System.Net.Sockets.AddressFamily");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for System.Net.Sockets.AddressFamily ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoMarchType_TypeID = -1;
		int YoozooGameplayRTSProtoMarchType_EnumRef = -1;
        
        public void PushYoozooGameplayRTSProtoMarchType(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.MarchType val)
        {
            if (YoozooGameplayRTSProtoMarchType_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoMarchType_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.MarchType), out is_first);
				
				if (YoozooGameplayRTSProtoMarchType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.RTS.Proto.MarchType));
				    YoozooGameplayRTSProtoMarchType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayRTSProtoMarchType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayRTSProtoMarchType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.MarchType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayRTSProtoMarchType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MarchType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMarchType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MarchType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.MarchType");
                }
				val = (Yoozoo.Gameplay.RTS.Proto.MarchType)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.MarchType)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.MarchType))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoMarchType(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.MarchType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoMarchType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.MarchType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.MarchType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        int YoozooGameplayRTSProtoNormalAttackType_TypeID = -1;
		int YoozooGameplayRTSProtoNormalAttackType_EnumRef = -1;
        
        public void PushYoozooGameplayRTSProtoNormalAttackType(RealStatePtr L, Yoozoo.Gameplay.RTS.Proto.NormalAttackType val)
        {
            if (YoozooGameplayRTSProtoNormalAttackType_TypeID == -1)
            {
			    bool is_first;
                YoozooGameplayRTSProtoNormalAttackType_TypeID = getTypeId(L, typeof(Yoozoo.Gameplay.RTS.Proto.NormalAttackType), out is_first);
				
				if (YoozooGameplayRTSProtoNormalAttackType_EnumRef == -1)
				{
				    Utils.LoadCSTable(L, typeof(Yoozoo.Gameplay.RTS.Proto.NormalAttackType));
				    YoozooGameplayRTSProtoNormalAttackType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
				}
				
            }
			
			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, YoozooGameplayRTSProtoNormalAttackType_EnumRef) == 1)
            {
			    return;
			}
			
            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, YoozooGameplayRTSProtoNormalAttackType_TypeID);
            if (!CopyByValue.Pack(buff, 0, (int)val))
            {
                throw new Exception("pack fail fail for Yoozoo.Gameplay.RTS.Proto.NormalAttackType ,value="+val);
            }
			
			LuaAPI.lua_getref(L, YoozooGameplayRTSProtoNormalAttackType_EnumRef);
			LuaAPI.lua_pushvalue(L, -2);
			LuaAPI.xlua_rawseti(L, -2, (int)val);
			LuaAPI.lua_pop(L, 1);
			
        }
		
        public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.NormalAttackType val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoNormalAttackType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.NormalAttackType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
				int e;
                if (!CopyByValue.UnPack(buff, 0, out e))
                {
                    throw new Exception("unpack fail for Yoozoo.Gameplay.RTS.Proto.NormalAttackType");
                }
				val = (Yoozoo.Gameplay.RTS.Proto.NormalAttackType)e;
                
            }
            else
            {
                val = (Yoozoo.Gameplay.RTS.Proto.NormalAttackType)objectCasters.GetCaster(typeof(Yoozoo.Gameplay.RTS.Proto.NormalAttackType))(L, index, null);
            }
        }
		
        public void UpdateYoozooGameplayRTSProtoNormalAttackType(RealStatePtr L, int index, Yoozoo.Gameplay.RTS.Proto.NormalAttackType val)
        {
		    
            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
            {
			    if (LuaAPI.xlua_gettypeid(L, index) != YoozooGameplayRTSProtoNormalAttackType_TypeID)
				{
				    throw new Exception("invalid userdata for Yoozoo.Gameplay.RTS.Proto.NormalAttackType");
				}
				
                IntPtr buff = LuaAPI.lua_touserdata(L, index);
                if (!CopyByValue.Pack(buff, 0,  (int)val))
                {
                    throw new Exception("pack fail for Yoozoo.Gameplay.RTS.Proto.NormalAttackType ,value="+val);
                }
            }
			
            else
            {
                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
            }
        }
        
        
		// table cast optimze
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "formationType"))
				{
					Get(L, top + 1, out val.formationType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierNum"))
				{
					Get(L, top + 1, out val.soldierNum);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "modelNum"))
				{
					Get(L, top + 1, out val.modelNum);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "fixedSoldierID"))
				{
					Get(L, top + 1, out val.fixedSoldierID);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierLocation"))
				{
					Get(L, top + 1, out val.soldierLocation);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "battleSoldierLocation"))
				{
					Get(L, top + 1, out val.battleSoldierLocation);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "formationPositionIndex"))
				{
					Get(L, top + 1, out val.formationPositionIndex);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "cfgs"))
				{
					Get(L, top + 1, out val.cfgs);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.EffectElement val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.EffectElement)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.EffectElement();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "elementId"))
				{
					Get(L, top + 1, out val.elementId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "skillId"))
				{
					Get(L, top + 1, out val.skillId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "skillLv"))
				{
					Get(L, top + 1, out val.skillLv);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "results"))
				{
					Get(L, top + 1, out val.results);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "normalAttackType"))
				{
					Get(L, top + 1, out val.normalAttackType);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.EffectElement));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapAssembly val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapAssembly)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapAssembly();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "lod2"))
				{
					Get(L, top + 1, out val.lod2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "lod3"))
				{
					Get(L, top + 1, out val.lod3);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapAssembly));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "initSoldierNum"))
				{
					Get(L, top + 1, out val.initSoldierNum);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "target"))
				{
					Get(L, top + 1, out val.target);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rage"))
				{
					Get(L, top + 1, out val.rage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierCount"))
				{
					Get(L, top + 1, out val.soldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "initSoldierCount"))
				{
					Get(L, top + 1, out val.initSoldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierListLength"))
				{
					Get(L, top + 1, out val.soldierListLength);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isFightConditionNotMet"))
				{
					Get(L, top + 1, out val.isFightConditionNotMet);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoBgColor"))
				{
					Get(L, top + 1, out val.LogoBgColor);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoBg"))
				{
					Get(L, top + 1, out val.LogoBg);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoColor"))
				{
					Get(L, top + 1, out val.LogoColor);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "Logo"))
				{
					Get(L, top + 1, out val.Logo);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoFrame"))
				{
					Get(L, top + 1, out val.LogoFrame);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageHeroIndex"))
				{
					Get(L, top + 1, out val.rageHeroIndex);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "assemblyId"))
				{
					Get(L, top + 1, out val.assemblyId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "leader"))
				{
					Get(L, top + 1, out val.leader);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTarget"))
				{
					Get(L, top + 1, out val.attackTarget);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero1"))
				{
					Get(L, top + 1, out val.hero1);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero2"))
				{
					Get(L, top + 1, out val.hero2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero3"))
				{
					Get(L, top + 1, out val.hero3);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "AssemblyIconType"))
				{
					Get(L, top + 1, out val.AssemblyIconType);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "identity"))
				{
					Get(L, top + 1, out val.identity);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTarget"))
				{
					Get(L, top + 1, out val.attackTarget);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchTypeInt"))
				{
					Get(L, top + 1, out val.marchTypeInt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchStatusInt"))
				{
					Get(L, top + 1, out val.marchStatusInt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rage"))
				{
					Get(L, top + 1, out val.rage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "team"))
				{
					Get(L, top + 1, out val.team);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero1"))
				{
					Get(L, top + 1, out val.hero1);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero2"))
				{
					Get(L, top + 1, out val.hero2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero3"))
				{
					Get(L, top + 1, out val.hero3);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageMax"))
				{
					Get(L, top + 1, out val.rageMax);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "initHp"))
				{
					Get(L, top + 1, out val.initHp);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "currentHp"))
				{
					Get(L, top + 1, out val.currentHp);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isFightConditionNotMet"))
				{
					Get(L, top + 1, out val.isFightConditionNotMet);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "modelName"))
				{
					Get(L, top + 1, out val.modelName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radius"))
				{
					Get(L, top + 1, out val.radius);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroIconList"))
				{
					Get(L, top + 1, out val.heroIconList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierCount"))
				{
					Get(L, top + 1, out val.soldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "initSoldierCount"))
				{
					Get(L, top + 1, out val.initSoldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierListLength"))
				{
					Get(L, top + 1, out val.soldierListLength);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "allianceId"))
				{
					Get(L, top + 1, out val.allianceId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isNewFromServer"))
				{
					Get(L, top + 1, out val.isNewFromServer);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "formationId"))
				{
					Get(L, top + 1, out val.formationId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "level"))
				{
					Get(L, top + 1, out val.level);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "expireMills"))
				{
					Get(L, top + 1, out val.expireMills);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapMonsterL2 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapMonsterL2)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapMonsterL2();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "expireTime"))
				{
					Get(L, top + 1, out val.expireTime);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "curHp"))
				{
					Get(L, top + 1, out val.curHp);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetId"))
				{
					Get(L, top + 1, out val.targetId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "initSoldierCount"))
				{
					Get(L, top + 1, out val.initSoldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "monsterName"))
				{
					Get(L, top + 1, out val.monsterName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierCount"))
				{
					Get(L, top + 1, out val.soldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "createPlayerId"))
				{
					Get(L, top + 1, out val.createPlayerId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarEventQuality"))
				{
					Get(L, top + 1, out val.radarEventQuality);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarIcon"))
				{
					Get(L, top + 1, out val.radarIcon);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarEventType"))
				{
					Get(L, top + 1, out val.radarEventType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarType"))
				{
					Get(L, top + 1, out val.radarType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarEventRewardIcon"))
				{
					Get(L, top + 1, out val.radarEventRewardIcon);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radarEquipType"))
				{
					Get(L, top + 1, out val.radarEquipType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierType"))
				{
					Get(L, top + 1, out val.soldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attRange"))
				{
					Get(L, top + 1, out val.attRange);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isMultiSoldierType"))
				{
					Get(L, top + 1, out val.isMultiSoldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierListLength"))
				{
					Get(L, top + 1, out val.soldierListLength);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isFightConditionNotMet"))
				{
					Get(L, top + 1, out val.isFightConditionNotMet);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageHeroIndex"))
				{
					Get(L, top + 1, out val.rageHeroIndex);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapMonsterL2));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapMonsterL3 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapMonsterL3)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapMonsterL3();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "npcUid"))
				{
					Get(L, top + 1, out val.npcUid);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "npcId"))
				{
					Get(L, top + 1, out val.npcId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "npcConfigType"))
				{
					Get(L, top + 1, out val.npcConfigType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "pathList"))
				{
					Get(L, top + 1, out val.pathList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "lastFrameTime"))
				{
					Get(L, top + 1, out val.lastFrameTime);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "speed"))
				{
					Get(L, top + 1, out val.speed);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchStatus"))
				{
					Get(L, top + 1, out val.marchStatus);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "useCnt"))
				{
					Get(L, top + 1, out val.useCnt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierType"))
				{
					Get(L, top + 1, out val.soldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "allianceId"))
				{
					Get(L, top + 1, out val.allianceId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroList"))
				{
					Get(L, top + 1, out val.heroList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "level"))
				{
					Get(L, top + 1, out val.level);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroIconList"))
				{
					Get(L, top + 1, out val.heroIconList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroRageList"))
				{
					Get(L, top + 1, out val.heroRageList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageMaxList"))
				{
					Get(L, top + 1, out val.rageMaxList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "fomationId"))
				{
					Get(L, top + 1, out val.fomationId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "npcType"))
				{
					Get(L, top + 1, out val.npcType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroBgIcon"))
				{
					Get(L, top + 1, out val.heroBgIcon);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetId"))
				{
					Get(L, top + 1, out val.attackTargetId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetType"))
				{
					Get(L, top + 1, out val.attackTargetType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "troopType"))
				{
					Get(L, top + 1, out val.troopType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "team"))
				{
					Get(L, top + 1, out val.team);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radius"))
				{
					Get(L, top + 1, out val.radius);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isShowAssemblyHeadFrame"))
				{
					Get(L, top + 1, out val.isShowAssemblyHeadFrame);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapMonsterL3));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.MapUnit val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.MapUnit)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.MapUnit();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "type"))
				{
					Get(L, top + 1, out val.type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "uid"))
				{
					Get(L, top + 1, out val.uid);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.MapUnit));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "troop"))
				{
					Get(L, top + 1, out val.troop);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroIconList"))
				{
					Get(L, top + 1, out val.heroIconList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroQualityList"))
				{
					Get(L, top + 1, out val.heroQualityList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroRageList"))
				{
					Get(L, top + 1, out val.heroRageList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "maxRage"))
				{
					Get(L, top + 1, out val.maxRage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "besiegeRadius"))
				{
					Get(L, top + 1, out val.besiegeRadius);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "arenaType"))
				{
					Get(L, top + 1, out val.arenaType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "playerName"))
				{
					Get(L, top + 1, out val.playerName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchAnimation"))
				{
					Get(L, top + 1, out val.marchAnimation);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.RtsMapMonster val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.RtsMapMonster)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.RtsMapMonster();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "lod2"))
				{
					Get(L, top + 1, out val.lod2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "lod3"))
				{
					Get(L, top + 1, out val.lod3);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.RtsMapMonster));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.SCRoundFight val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.SCRoundFight)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.SCRoundFight();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "fightInfo"))
				{
					Get(L, top + 1, out val.fightInfo);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "fightFrame"))
				{
					Get(L, top + 1, out val.fightFrame);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "fightFrameTime"))
				{
					Get(L, top + 1, out val.fightFrameTime);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "siegeFightInfo"))
				{
					Get(L, top + 1, out val.siegeFightInfo);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "scenes"))
				{
					Get(L, top + 1, out val.scenes);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "happenWorldId"))
				{
					Get(L, top + 1, out val.happenWorldId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.SCRoundFight));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "elements"))
				{
					Get(L, top + 1, out val.elements);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetId"))
				{
					Get(L, top + 1, out val.targetId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopFightInfo val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.TroopFightInfo)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.TroopFightInfo();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "tid"))
				{
					Get(L, top + 1, out val.tid);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "skills"))
				{
					Get(L, top + 1, out val.skills);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rage"))
				{
					Get(L, top + 1, out val.rage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "costRage"))
				{
					Get(L, top + 1, out val.costRage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldiers"))
				{
					Get(L, top + 1, out val.soldiers);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "intSoldierNum"))
				{
					Get(L, top + 1, out val.intSoldierNum);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "curSoldierNum"))
				{
					Get(L, top + 1, out val.curSoldierNum);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "elements"))
				{
					Get(L, top + 1, out val.elements);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isFightOver"))
				{
					Get(L, top + 1, out val.isFightOver);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isInBattle"))
				{
					Get(L, top + 1, out val.isInBattle);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.TroopFightInfo));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopMarch val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.TroopMarch)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.TroopMarch();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "lod2"))
				{
					Get(L, top + 1, out val.lod2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "lod3"))
				{
					Get(L, top + 1, out val.lod3);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "expeditionMarch"))
				{
					Get(L, top + 1, out val.expeditionMarch);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "expeditionDeck"))
				{
					Get(L, top + 1, out val.expeditionDeck);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "expeditionMoving"))
				{
					Get(L, top + 1, out val.expeditionMoving);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bIsCargoTruckFakeMarch"))
				{
					Get(L, top + 1, out val.bIsCargoTruckFakeMarch);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isNullTroop"))
				{
					Get(L, top + 1, out val.isNullTroop);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "CampId"))
				{
					Get(L, top + 1, out val.CampId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarch));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopMarchL2 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.TroopMarchL2)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.TroopMarchL2();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "marchTypeInt"))
				{
					Get(L, top + 1, out val.marchTypeInt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rage"))
				{
					Get(L, top + 1, out val.rage);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "killTimes"))
				{
					Get(L, top + 1, out val.killTimes);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "garrisonAngle"))
				{
					Get(L, top + 1, out val.garrisonAngle);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "scoutName"))
				{
					Get(L, top + 1, out val.scoutName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isAssemblyLeader"))
				{
					Get(L, top + 1, out val.isAssemblyLeader);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "assemblyId"))
				{
					Get(L, top + 1, out val.assemblyId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "collectSpeed"))
				{
					Get(L, top + 1, out val.collectSpeed);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierCount"))
				{
					Get(L, top + 1, out val.soldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "initSoldierCount"))
				{
					Get(L, top + 1, out val.initSoldierCount);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetUnitType"))
				{
					Get(L, top + 1, out val.attackTargetUnitType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetBuildingId"))
				{
					Get(L, top + 1, out val.attackTargetBuildingId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierType"))
				{
					Get(L, top + 1, out val.soldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attRange"))
				{
					Get(L, top + 1, out val.attRange);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isMultiSoldierType"))
				{
					Get(L, top + 1, out val.isMultiSoldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierListLength"))
				{
					Get(L, top + 1, out val.soldierListLength);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isFightConditionNotMet"))
				{
					Get(L, top + 1, out val.isFightConditionNotMet);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageHeroIndex"))
				{
					Get(L, top + 1, out val.rageHeroIndex);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoBgColor"))
				{
					Get(L, top + 1, out val.LogoBgColor);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoBg"))
				{
					Get(L, top + 1, out val.LogoBg);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "LogoColor"))
				{
					Get(L, top + 1, out val.LogoColor);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "Logo"))
				{
					Get(L, top + 1, out val.Logo);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "roleTitle"))
				{
					Get(L, top + 1, out val.roleTitle);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchSkinResId"))
				{
					Get(L, top + 1, out val.marchSkinResId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "leavePveAssemblyId"))
				{
					Get(L, top + 1, out val.leavePveAssemblyId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarchL2));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopMarchL3 val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.TroopMarchL3)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.TroopMarchL3();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "tid"))
				{
					Get(L, top + 1, out val.tid);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero1"))
				{
					Get(L, top + 1, out val.hero1);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero2"))
				{
					Get(L, top + 1, out val.hero2);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "hero3"))
				{
					Get(L, top + 1, out val.hero3);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "playerId"))
				{
					Get(L, top + 1, out val.playerId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "pathList"))
				{
					Get(L, top + 1, out val.pathList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetId"))
				{
					Get(L, top + 1, out val.targetId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "lastFrameTime"))
				{
					Get(L, top + 1, out val.lastFrameTime);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "speed"))
				{
					Get(L, top + 1, out val.speed);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "marchStatusInt"))
				{
					Get(L, top + 1, out val.marchStatusInt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetPosition"))
				{
					Get(L, top + 1, out val.targetPosition);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetId"))
				{
					Get(L, top + 1, out val.attackTargetId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "team"))
				{
					Get(L, top + 1, out val.team);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroIconList"))
				{
					Get(L, top + 1, out val.heroIconList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "rageMaxList"))
				{
					Get(L, top + 1, out val.rageMaxList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroRageList"))
				{
					Get(L, top + 1, out val.heroRageList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetTeam"))
				{
					Get(L, top + 1, out val.targetTeam);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "heroQualityList"))
				{
					Get(L, top + 1, out val.heroQualityList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attachUnit"))
				{
					Get(L, top + 1, out val.attachUnit);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "soldierType"))
				{
					Get(L, top + 1, out val.soldierType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "visible"))
				{
					Get(L, top + 1, out val.visible);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "clientStatusInt"))
				{
					Get(L, top + 1, out val.clientStatusInt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "crossDetail"))
				{
					Get(L, top + 1, out val.crossDetail);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "radius"))
				{
					Get(L, top + 1, out val.radius);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "besiegeCenter"))
				{
					Get(L, top + 1, out val.besiegeCenter);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "besiegeRadius"))
				{
					Get(L, top + 1, out val.besiegeRadius);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "besiegeFinalAngle"))
				{
					Get(L, top + 1, out val.besiegeFinalAngle);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "besiegeSpeedRatio"))
				{
					Get(L, top + 1, out val.besiegeSpeedRatio);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "attackTargetType"))
				{
					Get(L, top + 1, out val.attackTargetType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetType"))
				{
					Get(L, top + 1, out val.targetType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "troopType"))
				{
					Get(L, top + 1, out val.troopType);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "truckColor"))
				{
					Get(L, top + 1, out val.truckColor);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "truckBeGrabbedTimes"))
				{
					Get(L, top + 1, out val.truckBeGrabbedTimes);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "serverWorldId"))
				{
					Get(L, top + 1, out val.serverWorldId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarchL3));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.RTS.Proto.TroopTarget val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.RTS.Proto.TroopTarget)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.RTS.Proto.TroopTarget();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "type"))
				{
					Get(L, top + 1, out val.type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "coordinate"))
				{
					Get(L, top + 1, out val.coordinate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "targetId"))
				{
					Get(L, top + 1, out val.targetId);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.RTS.Proto.TroopTarget));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomEventConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomEventConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomEventConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "room_id"))
				{
					Get(L, top + 1, out val.room_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "room_state"))
				{
					Get(L, top + 1, out val.room_state);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "event_condition"))
				{
					Get(L, top + 1, out val.event_condition);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "link_npc"))
				{
					Get(L, top + 1, out val.link_npc);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "ex_event_tree"))
				{
					Get(L, top + 1, out val.ex_event_tree);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "ex_event_type"))
				{
					Get(L, top + 1, out val.ex_event_type);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomEventConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "room_id"))
				{
					Get(L, top + 1, out val.room_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "role_type_id"))
				{
					Get(L, top + 1, out val.role_type_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "default_npc_array"))
				{
					Get(L, top + 1, out val.default_npc_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "role_type_array"))
				{
					Get(L, top + 1, out val.role_type_array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "role_id"))
				{
					Get(L, top + 1, out val.role_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "role_class"))
				{
					Get(L, top + 1, out val.role_class);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "role_tag"))
				{
					Get(L, top + 1, out val.role_tag);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "model"))
				{
					Get(L, top + 1, out val.model);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "init_power"))
				{
					Get(L, top + 1, out val.init_power);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "role_type"))
				{
					Get(L, top + 1, out val.role_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "cost_role_type"))
				{
					Get(L, top + 1, out val.cost_role_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "random_cost_num"))
				{
					Get(L, top + 1, out val.random_cost_num);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "random_cost_role_type"))
				{
					Get(L, top + 1, out val.random_cost_role_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "room_role_type"))
				{
					Get(L, top + 1, out val.room_role_type);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoleConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoleConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoleConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoleConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoleConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoleConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoleConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "role_type"))
				{
					Get(L, top + 1, out val.role_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "event_tree_array"))
				{
					Get(L, top + 1, out val.event_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_event_array"))
				{
					Get(L, top + 1, out val.bubble_event_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_weight"))
				{
					Get(L, top + 1, out val.bubble_weight);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_type"))
				{
					Get(L, top + 1, out val.bubble_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition_event_array"))
				{
					Get(L, top + 1, out val.condition_event_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition_weight"))
				{
					Get(L, top + 1, out val.condition_weight);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition_type"))
				{
					Get(L, top + 1, out val.condition_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interactive_name_array"))
				{
					Get(L, top + 1, out val.interactive_name_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interactive_event_array"))
				{
					Get(L, top + 1, out val.interactive_event_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interactive_weight"))
				{
					Get(L, top + 1, out val.interactive_weight);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interactive_type"))
				{
					Get(L, top + 1, out val.interactive_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "break_event_array"))
				{
					Get(L, top + 1, out val.break_event_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "break_weight"))
				{
					Get(L, top + 1, out val.break_weight);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "break_type"))
				{
					Get(L, top + 1, out val.break_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "repower_event_tree_array"))
				{
					Get(L, top + 1, out val.repower_event_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "idle_event_tree_array"))
				{
					Get(L, top + 1, out val.idle_event_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "guarant_event_tree_array"))
				{
					Get(L, top + 1, out val.guarant_event_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "waite_tree_array"))
				{
					Get(L, top + 1, out val.waite_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "cost_tree_array"))
				{
					Get(L, top + 1, out val.cost_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "unlock_area_array"))
				{
					Get(L, top + 1, out val.unlock_area_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "employ_front_array"))
				{
					Get(L, top + 1, out val.employ_front_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "faulttolerance_tree_array"))
				{
					Get(L, top + 1, out val.faulttolerance_tree_array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoleConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventTreeConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventTreeConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventTreeConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "event_tree_id"))
				{
					Get(L, top + 1, out val.event_tree_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition"))
				{
					Get(L, top + 1, out val.condition);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition_or"))
				{
					Get(L, top + 1, out val.condition_or);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "event_array"))
				{
					Get(L, top + 1, out val.event_array);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "is_interrupt"))
				{
					Get(L, top + 1, out val.is_interrupt);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "position"))
				{
					Get(L, top + 1, out val.position);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "consumer_bubble"))
				{
					Get(L, top + 1, out val.consumer_bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "specialevent_group"))
				{
					Get(L, top + 1, out val.specialevent_group);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventTreeConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "event_id"))
				{
					Get(L, top + 1, out val.event_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "event_type"))
				{
					Get(L, top + 1, out val.event_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "condition"))
				{
					Get(L, top + 1, out val.condition);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "demand"))
				{
					Get(L, top + 1, out val.demand);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "goto_ani"))
				{
					Get(L, top + 1, out val.goto_ani);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "animation"))
				{
					Get(L, top + 1, out val.animation);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interactive"))
				{
					Get(L, top + 1, out val.interactive);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bones_bind_interactive"))
				{
					Get(L, top + 1, out val.bones_bind_interactive);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "wait_ani"))
				{
					Get(L, top + 1, out val.wait_ani);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "power_change"))
				{
					Get(L, top + 1, out val.power_change);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "time_type"))
				{
					Get(L, top + 1, out val.time_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "execute_time"))
				{
					Get(L, top + 1, out val.execute_time);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "parameter"))
				{
					Get(L, top + 1, out val.parameter);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_hud_type"))
				{
					Get(L, top + 1, out val.bubble_hud_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_start_type"))
				{
					Get(L, top + 1, out val.bubble_start_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_type"))
				{
					Get(L, top + 1, out val.bubble_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble"))
				{
					Get(L, top + 1, out val.bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bones_bind_bubble"))
				{
					Get(L, top + 1, out val.bones_bind_bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "goto_speed"))
				{
					Get(L, top + 1, out val.goto_speed);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "append_type"))
				{
					Get(L, top + 1, out val.append_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "append"))
				{
					Get(L, top + 1, out val.append);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bones_bind_append"))
				{
					Get(L, top + 1, out val.bones_bind_append);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bind_positionoffset_id"))
				{
					Get(L, top + 1, out val.bind_positionoffset_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "clear_bubble"))
				{
					Get(L, top + 1, out val.clear_bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "id"))
				{
					Get(L, top + 1, out val.id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bone_path"))
				{
					Get(L, top + 1, out val.bone_path);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "id"))
				{
					Get(L, top + 1, out val.id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "wait_time"))
				{
					Get(L, top + 1, out val.wait_time);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isdisplay"))
				{
					Get(L, top + 1, out val.isdisplay);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_displaytime"))
				{
					Get(L, top + 1, out val.bubble_displaytime);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "display_progress"))
				{
					Get(L, top + 1, out val.display_progress);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble"))
				{
					Get(L, top + 1, out val.bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bones_bind_bubble"))
				{
					Get(L, top + 1, out val.bones_bind_bubble);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "id"))
				{
					Get(L, top + 1, out val.id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "type"))
				{
					Get(L, top + 1, out val.type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "prefab"))
				{
					Get(L, top + 1, out val.prefab);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "link_point"))
				{
					Get(L, top + 1, out val.link_point);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bubble_id"))
				{
					Get(L, top + 1, out val.bubble_id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "clear_time"))
				{
					Get(L, top + 1, out val.clear_time);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiSpecialConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiSpecialConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiSpecialConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiSpecialConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiSpecialConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiSpecialConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiSpecialConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "id"))
				{
					Get(L, top + 1, out val.id);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "priority"))
				{
					Get(L, top + 1, out val.priority);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interrupt_event_tree"))
				{
					Get(L, top + 1, out val.interrupt_event_tree);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "interrupt_event_type"))
				{
					Get(L, top + 1, out val.interrupt_event_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bind_func_type"))
				{
					Get(L, top + 1, out val.bind_func_type);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "bind_func"))
				{
					Get(L, top + 1, out val.bind_func);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiSpecialConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "roomId"))
				{
					Get(L, top + 1, out val.roomId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "birthPointPosList"))
				{
					Get(L, top + 1, out val.birthPointPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "specialPointPosList"))
				{
					Get(L, top + 1, out val.specialPointPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "goodsList"))
				{
					Get(L, top + 1, out val.goodsList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MovePointList"))
				{
					Get(L, top + 1, out val.MovePointList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "WaitPointPosList"))
				{
					Get(L, top + 1, out val.WaitPointPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "WaitPointRotList"))
				{
					Get(L, top + 1, out val.WaitPointRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "FrontStaffWaitPointPosList"))
				{
					Get(L, top + 1, out val.FrontStaffWaitPointPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "FrontStaffWaitPointRotList"))
				{
					Get(L, top + 1, out val.FrontStaffWaitPointRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "BackStaffWaitPointPosList"))
				{
					Get(L, top + 1, out val.BackStaffWaitPointPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "BackStaffWaitPointRotList"))
				{
					Get(L, top + 1, out val.BackStaffWaitPointRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MultiWaitPointVecPosList"))
				{
					Get(L, top + 1, out val.MultiWaitPointVecPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MultiWaitPointVecRotList"))
				{
					Get(L, top + 1, out val.MultiWaitPointVecRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "BusinessNpcJumpToRoomPointVecPosList"))
				{
					Get(L, top + 1, out val.BusinessNpcJumpToRoomPointVecPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "BusinessNpcJumpToRoomPointVecRotList"))
				{
					Get(L, top + 1, out val.BusinessNpcJumpToRoomPointVecRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "OccupyAreaPointVecPosList"))
				{
					Get(L, top + 1, out val.OccupyAreaPointVecPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "OccupyAreaPointVecRotList"))
				{
					Get(L, top + 1, out val.OccupyAreaPointVecRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiGoodsConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiGoodsConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiGoodsConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "GoodsName"))
				{
					Get(L, top + 1, out val.GoodsName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "UnlockBuildId"))
				{
					Get(L, top + 1, out val.UnlockBuildId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "UnlockLevel"))
				{
					Get(L, top + 1, out val.UnlockLevel);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "FacilityId"))
				{
					Get(L, top + 1, out val.FacilityId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "pointDataList"))
				{
					Get(L, top + 1, out val.pointDataList);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiGoodsConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiEventPointConfig val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiEventPointConfig)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiEventPointConfig();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "Index"))
				{
					Get(L, top + 1, out val.Index);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "eventId"))
				{
					Get(L, top + 1, out val.eventId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "EventGroup"))
				{
					Get(L, top + 1, out val.EventGroup);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "Position"))
				{
					Get(L, top + 1, out val.Position);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "Rotate"))
				{
					Get(L, top + 1, out val.Rotate);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "GoodsTriggerName"))
				{
					Get(L, top + 1, out val.GoodsTriggerName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MoveGoodsName"))
				{
					Get(L, top + 1, out val.MoveGoodsName);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MoveGoodsPosList"))
				{
					Get(L, top + 1, out val.MoveGoodsPosList);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "MoveGoodsRotList"))
				{
					Get(L, top + 1, out val.MoveGoodsRotList);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiEventPointConfig));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomDatas val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomDatas)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomDatas();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "array"))
				{
					Get(L, top + 1, out val.array);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomDatas));
            }
        }
		
		public void Get(RealStatePtr L, int index, out Yoozoo.Gameplay.City.CityRealAiRoomData val)
        {
		    LuaTypes type = LuaAPI.lua_type(L, index);
            if (type == LuaTypes.LUA_TUSERDATA )
            {
			    val = (Yoozoo.Gameplay.City.CityRealAiRoomData)FastGetCSObj(L, index);
            }
			else if (type == LuaTypes.LUA_TTABLE)
			{
			    val = new Yoozoo.Gameplay.City.CityRealAiRoomData();
				int top = LuaAPI.lua_gettop(L);
				
				if (Utils.LoadField(L, index, "areaId"))
				{
					Get(L, top + 1, out val.areaId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "buildingId"))
				{
					Get(L, top + 1, out val.buildingId);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "index"))
				{
					Get(L, top + 1, out val.index);
				}
				LuaAPI.lua_pop(L, 1);
				
				if (Utils.LoadField(L, index, "isDecoration"))
				{
					Get(L, top + 1, out val.isDecoration);
				}
				LuaAPI.lua_pop(L, 1);
				
			}
            else
            {
                throw new Exception("can not cast " + LuaAPI.lua_type(L, index) + " to " + typeof(Yoozoo.Gameplay.City.CityRealAiRoomData));
            }
        }
		
        
    }
	
	public partial class StaticLuaCallbacks
    {
	    internal static bool __tryArrayGet(Type type, RealStatePtr L, ObjectTranslator translator, object obj, int index)
		{
		
			if (type == typeof(UnityEngine.Vector2[]))
			{
			    UnityEngine.Vector2[] array = obj as UnityEngine.Vector2[];
				translator.PushUnityEngineVector2(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Vector3[]))
			{
			    UnityEngine.Vector3[] array = obj as UnityEngine.Vector3[];
				translator.PushUnityEngineVector3(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Vector4[]))
			{
			    UnityEngine.Vector4[] array = obj as UnityEngine.Vector4[];
				translator.PushUnityEngineVector4(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Color[]))
			{
			    UnityEngine.Color[] array = obj as UnityEngine.Color[];
				translator.PushUnityEngineColor(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Quaternion[]))
			{
			    UnityEngine.Quaternion[] array = obj as UnityEngine.Quaternion[];
				translator.PushUnityEngineQuaternion(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Ray[]))
			{
			    UnityEngine.Ray[] array = obj as UnityEngine.Ray[];
				translator.PushUnityEngineRay(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Bounds[]))
			{
			    UnityEngine.Bounds[] array = obj as UnityEngine.Bounds[];
				translator.PushUnityEngineBounds(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Ray2D[]))
			{
			    UnityEngine.Ray2D[] array = obj as UnityEngine.Ray2D[];
				translator.PushUnityEngineRay2D(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.UpdateSoldierStruct[]))
			{
			    Yoozoo.Gameplay.RTS.UpdateSoldierStruct[] array = obj as Yoozoo.Gameplay.RTS.UpdateSoldierStruct[];
				translator.PushYoozooGameplayRTSUpdateSoldierStruct(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.EMarchStatus[]))
			{
			    Yoozoo.Gameplay.RTS.EMarchStatus[] array = obj as Yoozoo.Gameplay.RTS.EMarchStatus[];
				translator.PushYoozooGameplayRTSEMarchStatus(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.CastSkill[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.CastSkill[] array = obj as Yoozoo.Gameplay.RTS.Proto.CastSkill[];
				translator.PushYoozooGameplayRTSProtoCastSkill(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.Coordinate[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.Coordinate[] array = obj as Yoozoo.Gameplay.RTS.Proto.Coordinate[];
				translator.PushYoozooGameplayRTSProtoCoordinate(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.CrossingGate[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.CrossingGate[] array = obj as Yoozoo.Gameplay.RTS.Proto.CrossingGate[];
				translator.PushYoozooGameplayRTSProtoCrossingGate(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.SoldierLocation[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.SoldierLocation[] array = obj as Yoozoo.Gameplay.RTS.Proto.SoldierLocation[];
				translator.PushYoozooGameplayRTSProtoSoldierLocation(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.ElementResult[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.ElementResult[] array = obj as Yoozoo.Gameplay.RTS.Proto.ElementResult[];
				translator.PushYoozooGameplayRTSProtoElementResult(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[];
				translator.PushYoozooGameplayRTSProtoMapPoliceOfficeL2(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[];
				translator.PushYoozooGameplayRTSProtoMapPoliceOfficeL4(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[] array = obj as Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[];
				translator.PushYoozooGameplayRTSProtoTargetCoordinateType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[];
				translator.PushYoozooGameplayRTSProtoTroopsSoldier(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[];
				translator.PushYoozooGameplayCityCityRealAiSpecialRecoverConfig(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.GlobalVariablesConfig[]))
			{
			    Yoozoo.Gameplay.City.GlobalVariablesConfig[] array = obj as Yoozoo.Gameplay.City.GlobalVariablesConfig[];
				translator.PushYoozooGameplayCityGlobalVariablesConfig(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[]))
			{
			    Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[] array = obj as Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[];
				translator.PushYoozooManagersResourceManagerV2FrameworkResourceHasAssetResult(L, array[index]);
				return true;
			}
			else if (type == typeof(BunkerHitPointType[]))
			{
			    BunkerHitPointType[] array = obj as BunkerHitPointType[];
				translator.PushBunkerHitPointType(L, array[index]);
				return true;
			}
			else if (type == typeof(DG.Tweening.Ease[]))
			{
			    DG.Tweening.Ease[] array = obj as DG.Tweening.Ease[];
				translator.PushDGTweeningEase(L, array[index]);
				return true;
			}
			else if (type == typeof(DG.Tweening.LoopType[]))
			{
			    DG.Tweening.LoopType[] array = obj as DG.Tweening.LoopType[];
				translator.PushDGTweeningLoopType(L, array[index]);
				return true;
			}
			else if (type == typeof(DG.Tweening.PathMode[]))
			{
			    DG.Tweening.PathMode[] array = obj as DG.Tweening.PathMode[];
				translator.PushDGTweeningPathMode(L, array[index]);
				return true;
			}
			else if (type == typeof(DG.Tweening.PathType[]))
			{
			    DG.Tweening.PathType[] array = obj as DG.Tweening.PathType[];
				translator.PushDGTweeningPathType(L, array[index]);
				return true;
			}
			else if (type == typeof(DG.Tweening.RotateMode[]))
			{
			    DG.Tweening.RotateMode[] array = obj as DG.Tweening.RotateMode[];
				translator.PushDGTweeningRotateMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.PrimitiveType[]))
			{
			    UnityEngine.PrimitiveType[] array = obj as UnityEngine.PrimitiveType[];
				translator.PushUnityEnginePrimitiveType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.SimulationMode[]))
			{
			    UnityEngine.SimulationMode[] array = obj as UnityEngine.SimulationMode[];
				translator.PushUnityEngineSimulationMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.RuntimePlatform[]))
			{
			    UnityEngine.RuntimePlatform[] array = obj as UnityEngine.RuntimePlatform[];
				translator.PushUnityEngineRuntimePlatform(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.TextureFormat[]))
			{
			    UnityEngine.TextureFormat[] array = obj as UnityEngine.TextureFormat[];
				translator.PushUnityEngineTextureFormat(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.RenderMode[]))
			{
			    UnityEngine.RenderMode[] array = obj as UnityEngine.RenderMode[];
				translator.PushUnityEngineRenderMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.CameraClearFlags[]))
			{
			    UnityEngine.CameraClearFlags[] array = obj as UnityEngine.CameraClearFlags[];
				translator.PushUnityEngineCameraClearFlags(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.LightmapsMode[]))
			{
			    UnityEngine.LightmapsMode[] array = obj as UnityEngine.LightmapsMode[];
				translator.PushUnityEngineLightmapsMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.FogMode[]))
			{
			    UnityEngine.FogMode[] array = obj as UnityEngine.FogMode[];
				translator.PushUnityEngineFogMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.DefaultReflectionMode[]))
			{
			    UnityEngine.Rendering.DefaultReflectionMode[] array = obj as UnityEngine.Rendering.DefaultReflectionMode[];
				translator.PushUnityEngineRenderingDefaultReflectionMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.AmbientMode[]))
			{
			    UnityEngine.Rendering.AmbientMode[] array = obj as UnityEngine.Rendering.AmbientMode[];
				translator.PushUnityEngineRenderingAmbientMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.ReflectionProbeMode[]))
			{
			    UnityEngine.Rendering.ReflectionProbeMode[] array = obj as UnityEngine.Rendering.ReflectionProbeMode[];
				translator.PushUnityEngineRenderingReflectionProbeMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Mars.Got.QualityEnum[]))
			{
			    Yoozoo.Mars.Got.QualityEnum[] array = obj as Yoozoo.Mars.Got.QualityEnum[];
				translator.PushYoozooMarsGotQualityEnum(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[]))
			{
			    Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[] array = obj as Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[];
				translator.PushYoozooModulesDownloadDownloadWhilePlayingManagerStatus(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.PreDownloadManager.Status[]))
			{
			    Yoozoo.Modules.Download.PreDownloadManager.Status[] array = obj as Yoozoo.Modules.Download.PreDownloadManager.Status[];
				translator.PushYoozooModulesDownloadPreDownloadManagerStatus(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[]))
			{
			    Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[] array = obj as Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[];
				translator.PushYoozooManagersResourceManagerV2FrameworkResourceResourceMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.AI.AnimationState[]))
			{
			    Yoozoo.Gameplay.Liberty.AI.AnimationState[] array = obj as Yoozoo.Gameplay.Liberty.AI.AnimationState[];
				translator.PushYoozooGameplayLibertyAIAnimationState(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.AI.BattleState[]))
			{
			    Yoozoo.Gameplay.Liberty.AI.BattleState[] array = obj as Yoozoo.Gameplay.Liberty.AI.BattleState[];
				translator.PushYoozooGameplayLibertyAIBattleState(L, array[index]);
				return true;
			}
			else if (type == typeof(TreeType[]))
			{
			    TreeType[] array = obj as TreeType[];
				translator.PushTreeType(L, array[index]);
				return true;
			}
			else if (type == typeof(System.Environment.SpecialFolder[]))
			{
			    System.Environment.SpecialFolder[] array = obj as System.Environment.SpecialFolder[];
				translator.PushSystemEnvironmentSpecialFolder(L, array[index]);
				return true;
			}
			else if (type == typeof(System.Environment.SpecialFolderOption[]))
			{
			    System.Environment.SpecialFolderOption[] array = obj as System.Environment.SpecialFolderOption[];
				translator.PushSystemEnvironmentSpecialFolderOption(L, array[index]);
				return true;
			}
			else if (type == typeof(WorldEntry.MapPointType[]))
			{
			    WorldEntry.MapPointType[] array = obj as WorldEntry.MapPointType[];
				translator.PushWorldEntryMapPointType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Manager.TouchManager.RaycastTarget[]))
			{
			    Yoozoo.Manager.TouchManager.RaycastTarget[] array = obj as Yoozoo.Manager.TouchManager.RaycastTarget[];
				translator.PushYoozooManagerTouchManagerRaycastTarget(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.RectTransform.Edge[]))
			{
			    UnityEngine.RectTransform.Edge[] array = obj as UnityEngine.RectTransform.Edge[];
				translator.PushUnityEngineRectTransformEdge(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.RectTransform.Axis[]))
			{
			    UnityEngine.RectTransform.Axis[] array = obj as UnityEngine.RectTransform.Axis[];
				translator.PushUnityEngineRectTransformAxis(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Texture2D.EXRFlags[]))
			{
			    UnityEngine.Texture2D.EXRFlags[] array = obj as UnityEngine.Texture2D.EXRFlags[];
				translator.PushUnityEngineTexture2DEXRFlags(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ScrollRect.MovementType[]))
			{
			    UnityEngine.UI.ScrollRect.MovementType[] array = obj as UnityEngine.UI.ScrollRect.MovementType[];
				translator.PushUnityEngineUIScrollRectMovementType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ScrollRect.ScrollbarVisibility[]))
			{
			    UnityEngine.UI.ScrollRect.ScrollbarVisibility[] array = obj as UnityEngine.UI.ScrollRect.ScrollbarVisibility[];
				translator.PushUnityEngineUIScrollRectScrollbarVisibility(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Corner[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Corner[] array = obj as UnityEngine.UI.GridLayoutGroup.Corner[];
				translator.PushUnityEngineUIGridLayoutGroupCorner(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Axis[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Axis[] array = obj as UnityEngine.UI.GridLayoutGroup.Axis[];
				translator.PushUnityEngineUIGridLayoutGroupAxis(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Constraint[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Constraint[] array = obj as UnityEngine.UI.GridLayoutGroup.Constraint[];
				translator.PushUnityEngineUIGridLayoutGroupConstraint(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ContentSizeFitter.FitMode[]))
			{
			    UnityEngine.UI.ContentSizeFitter.FitMode[] array = obj as UnityEngine.UI.ContentSizeFitter.FitMode[];
				translator.PushUnityEngineUIContentSizeFitterFitMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.ContentType[]))
			{
			    UnityEngine.UI.InputField.ContentType[] array = obj as UnityEngine.UI.InputField.ContentType[];
				translator.PushUnityEngineUIInputFieldContentType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.InputType[]))
			{
			    UnityEngine.UI.InputField.InputType[] array = obj as UnityEngine.UI.InputField.InputType[];
				translator.PushUnityEngineUIInputFieldInputType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.CharacterValidation[]))
			{
			    UnityEngine.UI.InputField.CharacterValidation[] array = obj as UnityEngine.UI.InputField.CharacterValidation[];
				translator.PushUnityEngineUIInputFieldCharacterValidation(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.LineType[]))
			{
			    UnityEngine.UI.InputField.LineType[] array = obj as UnityEngine.UI.InputField.LineType[];
				translator.PushUnityEngineUIInputFieldLineType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YList.Direction[]))
			{
			    Yoozoo.UI.YGUI.YList.Direction[] array = obj as Yoozoo.UI.YGUI.YList.Direction[];
				translator.PushYoozooUIYGUIYListDirection(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YSlider.Direction[]))
			{
			    Yoozoo.UI.YGUI.YSlider.Direction[] array = obj as Yoozoo.UI.YGUI.YSlider.Direction[];
				translator.PushYoozooUIYGUIYSliderDirection(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YSlider.TextType[]))
			{
			    Yoozoo.UI.YGUI.YSlider.TextType[] array = obj as Yoozoo.UI.YGUI.YSlider.TextType[];
				translator.PushYoozooUIYGUIYSliderTextType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YRichText.LineAlignment[]))
			{
			    Yoozoo.UI.YGUI.YRichText.LineAlignment[] array = obj as Yoozoo.UI.YGUI.YRichText.LineAlignment[];
				translator.PushYoozooUIYGUIYRichTextLineAlignment(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[]))
			{
			    Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[] array = obj as Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[];
				translator.PushYoozooUIYGUIYRichUnderlineTextLineAlignment(L, array[index]);
				return true;
			}
			else if (type == typeof(Gameplay.PVE.AStarMgr.EShapeType[]))
			{
			    Gameplay.PVE.AStarMgr.EShapeType[] array = obj as Gameplay.PVE.AStarMgr.EShapeType[];
				translator.PushGameplayPVEAStarMgrEShapeType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.GateFitMode[]))
			{
			    UnityEngine.Camera.GateFitMode[] array = obj as UnityEngine.Camera.GateFitMode[];
				translator.PushUnityEngineCameraGateFitMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.FieldOfViewAxis[]))
			{
			    UnityEngine.Camera.FieldOfViewAxis[] array = obj as UnityEngine.Camera.FieldOfViewAxis[];
				translator.PushUnityEngineCameraFieldOfViewAxis(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.StereoscopicEye[]))
			{
			    UnityEngine.Camera.StereoscopicEye[] array = obj as UnityEngine.Camera.StereoscopicEye[];
				translator.PushUnityEngineCameraStereoscopicEye(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.MonoOrStereoscopicEye[]))
			{
			    UnityEngine.Camera.MonoOrStereoscopicEye[] array = obj as UnityEngine.Camera.MonoOrStereoscopicEye[];
				translator.PushUnityEngineCameraMonoOrStereoscopicEye(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ListSelectionMode[]))
			{
			    Yoozoo.UI.YGUI.ListView.ListSelectionMode[] array = obj as Yoozoo.UI.YGUI.ListView.ListSelectionMode[];
				translator.PushYoozooUIYGUIListViewListSelectionMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ListLayoutType[]))
			{
			    Yoozoo.UI.YGUI.ListView.ListLayoutType[] array = obj as Yoozoo.UI.YGUI.ListView.ListLayoutType[];
				translator.PushYoozooUIYGUIListViewListLayoutType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.VertAlignType[]))
			{
			    Yoozoo.UI.YGUI.ListView.VertAlignType[] array = obj as Yoozoo.UI.YGUI.ListView.VertAlignType[];
				translator.PushYoozooUIYGUIListViewVertAlignType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.AlignType[]))
			{
			    Yoozoo.UI.YGUI.ListView.AlignType[] array = obj as Yoozoo.UI.YGUI.ListView.AlignType[];
				translator.PushYoozooUIYGUIListViewAlignType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[]))
			{
			    Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[] array = obj as Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[];
				translator.PushYoozooUIYGUIListViewChildrenRenderOrder(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[]))
			{
			    Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[] array = obj as Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[];
				translator.PushYoozooModulesDownloadDownloadWhilePlayingManagerError(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.PreDownloadManager.Error[]))
			{
			    Yoozoo.Modules.Download.PreDownloadManager.Error[] array = obj as Yoozoo.Modules.Download.PreDownloadManager.Error[];
				translator.PushYoozooModulesDownloadPreDownloadManagerError(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBrain.UpdateMethod[]))
			{
			    Cinemachine.CinemachineBrain.UpdateMethod[] array = obj as Cinemachine.CinemachineBrain.UpdateMethod[];
				translator.PushCinemachineCinemachineBrainUpdateMethod(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBrain.BrainUpdateMethod[]))
			{
			    Cinemachine.CinemachineBrain.BrainUpdateMethod[] array = obj as Cinemachine.CinemachineBrain.BrainUpdateMethod[];
				translator.PushCinemachineCinemachineBrainBrainUpdateMethod(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBlendDefinition.Style[]))
			{
			    Cinemachine.CinemachineBlendDefinition.Style[] array = obj as Cinemachine.CinemachineBlendDefinition.Style[];
				translator.PushCinemachineCinemachineBlendDefinitionStyle(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineTransposer.BindingMode[]))
			{
			    Cinemachine.CinemachineTransposer.BindingMode[] array = obj as Cinemachine.CinemachineTransposer.BindingMode[];
				translator.PushCinemachineCinemachineTransposerBindingMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineTransposer.AngularDampingMode[]))
			{
			    Cinemachine.CinemachineTransposer.AngularDampingMode[] array = obj as Cinemachine.CinemachineTransposer.AngularDampingMode[];
				translator.PushCinemachineCinemachineTransposerAngularDampingMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Reporter._LogType[]))
			{
			    Reporter._LogType[] array = obj as Reporter._LogType[];
				translator.PushReporter_LogType(L, array[index]);
				return true;
			}
			else if (type == typeof(System.Reflection.BindingFlags[]))
			{
			    System.Reflection.BindingFlags[] array = obj as System.Reflection.BindingFlags[];
				translator.PushSystemReflectionBindingFlags(L, array[index]);
				return true;
			}
			else if (type == typeof(ReddotNode.ReddotNodeType[]))
			{
			    ReddotNode.ReddotNodeType[] array = obj as ReddotNode.ReddotNodeType[];
				translator.PushReddotNodeReddotNodeType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GraphicRaycaster.BlockingObjects[]))
			{
			    UnityEngine.UI.GraphicRaycaster.BlockingObjects[] array = obj as UnityEngine.UI.GraphicRaycaster.BlockingObjects[];
				translator.PushUnityEngineUIGraphicRaycasterBlockingObjects(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.ScaleMode[]))
			{
			    UnityEngine.UI.CanvasScaler.ScaleMode[] array = obj as UnityEngine.UI.CanvasScaler.ScaleMode[];
				translator.PushUnityEngineUICanvasScalerScaleMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.ScreenMatchMode[]))
			{
			    UnityEngine.UI.CanvasScaler.ScreenMatchMode[] array = obj as UnityEngine.UI.CanvasScaler.ScreenMatchMode[];
				translator.PushUnityEngineUICanvasScalerScreenMatchMode(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.Unit[]))
			{
			    UnityEngine.UI.CanvasScaler.Unit[] array = obj as UnityEngine.UI.CanvasScaler.Unit[];
				translator.PushUnityEngineUICanvasScalerUnit(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Type[]))
			{
			    UnityEngine.UI.Image.Type[] array = obj as UnityEngine.UI.Image.Type[];
				translator.PushUnityEngineUIImageType(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.FillMethod[]))
			{
			    UnityEngine.UI.Image.FillMethod[] array = obj as UnityEngine.UI.Image.FillMethod[];
				translator.PushUnityEngineUIImageFillMethod(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.OriginHorizontal[]))
			{
			    UnityEngine.UI.Image.OriginHorizontal[] array = obj as UnityEngine.UI.Image.OriginHorizontal[];
				translator.PushUnityEngineUIImageOriginHorizontal(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.OriginVertical[]))
			{
			    UnityEngine.UI.Image.OriginVertical[] array = obj as UnityEngine.UI.Image.OriginVertical[];
				translator.PushUnityEngineUIImageOriginVertical(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin90[]))
			{
			    UnityEngine.UI.Image.Origin90[] array = obj as UnityEngine.UI.Image.Origin90[];
				translator.PushUnityEngineUIImageOrigin90(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin180[]))
			{
			    UnityEngine.UI.Image.Origin180[] array = obj as UnityEngine.UI.Image.Origin180[];
				translator.PushUnityEngineUIImageOrigin180(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin360[]))
			{
			    UnityEngine.UI.Image.Origin360[] array = obj as UnityEngine.UI.Image.Origin360[];
				translator.PushUnityEngineUIImageOrigin360(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.Direction[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.Direction[] array = obj as Yoozoo.UI.YGUI.YScrollRect.Direction[];
				translator.PushYoozooUIYGUIYScrollRectDirection(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.MovementType[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.MovementType[] array = obj as Yoozoo.UI.YGUI.YScrollRect.MovementType[];
				translator.PushYoozooUIYGUIYScrollRectMovementType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[] array = obj as Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[];
				translator.PushYoozooUIYGUIYScrollRectScrollbarVisibility(L, array[index]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Selectable.Transition[]))
			{
			    UnityEngine.UI.Selectable.Transition[] array = obj as UnityEngine.UI.Selectable.Transition[];
				translator.PushUnityEngineUISelectableTransition(L, array[index]);
				return true;
			}
			else if (type == typeof(Mopsicus.Plugins.MobileInputField.ReturnKeyType[]))
			{
			    Mopsicus.Plugins.MobileInputField.ReturnKeyType[] array = obj as Mopsicus.Plugins.MobileInputField.ReturnKeyType[];
				translator.PushMopsicusPluginsMobileInputFieldReturnKeyType(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[]))
			{
			    Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[] array = obj as Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[];
				translator.PushCinemachineCinemachineVirtualCameraBaseStandbyUpdateMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineVirtualCameraBase.BlendHint[]))
			{
			    Cinemachine.CinemachineVirtualCameraBase.BlendHint[] array = obj as Cinemachine.CinemachineVirtualCameraBase.BlendHint[];
				translator.PushCinemachineCinemachineVirtualCameraBaseBlendHint(L, array[index]);
				return true;
			}
			else if (type == typeof(MarchEntity.SquareAction[]))
			{
			    MarchEntity.SquareAction[] array = obj as MarchEntity.SquareAction[];
				translator.PushMarchEntitySquareAction(L, array[index]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.NormalAttackType[]))
			{
			    com.youzu.warh.protocol.NormalAttackType[] array = obj as com.youzu.warh.protocol.NormalAttackType[];
				translator.PushcomyouzuwarhprotocolNormalAttackType(L, array[index]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.BattleMountUnitType[]))
			{
			    com.youzu.warh.protocol.BattleMountUnitType[] array = obj as com.youzu.warh.protocol.BattleMountUnitType[];
				translator.PushcomyouzuwarhprotocolBattleMountUnitType(L, array[index]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.Resource[]))
			{
			    com.youzu.warh.protocol.Resource[] array = obj as com.youzu.warh.protocol.Resource[];
				translator.PushcomyouzuwarhprotocolResource(L, array[index]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.TargetCoordinateType[]))
			{
			    com.youzu.warh.protocol.TargetCoordinateType[] array = obj as com.youzu.warh.protocol.TargetCoordinateType[];
				translator.PushcomyouzuwarhprotocolTargetCoordinateType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[]))
			{
			    Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[] array = obj as Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[];
				translator.PushYoozooGameplayLibertyPlayerControllerControlMode(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[]))
			{
			    Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[] array = obj as Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[];
				translator.PushYoozooGameplayLibertyPlayerControllerEnterExitCarState(L, array[index]);
				return true;
			}
			else if (type == typeof(System.Net.NetworkInformation.NetworkInterfaceType[]))
			{
			    System.Net.NetworkInformation.NetworkInterfaceType[] array = obj as System.Net.NetworkInformation.NetworkInterfaceType[];
				translator.PushSystemNetNetworkInformationNetworkInterfaceType(L, array[index]);
				return true;
			}
			else if (type == typeof(System.Net.Sockets.AddressFamily[]))
			{
			    System.Net.Sockets.AddressFamily[] array = obj as System.Net.Sockets.AddressFamily[];
				translator.PushSystemNetSocketsAddressFamily(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MarchType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MarchType[] array = obj as Yoozoo.Gameplay.RTS.Proto.MarchType[];
				translator.PushYoozooGameplayRTSProtoMarchType(L, array[index]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.NormalAttackType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.NormalAttackType[] array = obj as Yoozoo.Gameplay.RTS.Proto.NormalAttackType[];
				translator.PushYoozooGameplayRTSProtoNormalAttackType(L, array[index]);
				return true;
			}
            return false;
		}
		
		internal static bool __tryArraySet(Type type, RealStatePtr L, ObjectTranslator translator, object obj, int array_idx, int obj_idx)
		{
		
			if (type == typeof(UnityEngine.Vector2[]))
			{
			    UnityEngine.Vector2[] array = obj as UnityEngine.Vector2[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Vector3[]))
			{
			    UnityEngine.Vector3[] array = obj as UnityEngine.Vector3[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Vector4[]))
			{
			    UnityEngine.Vector4[] array = obj as UnityEngine.Vector4[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Color[]))
			{
			    UnityEngine.Color[] array = obj as UnityEngine.Color[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Quaternion[]))
			{
			    UnityEngine.Quaternion[] array = obj as UnityEngine.Quaternion[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Ray[]))
			{
			    UnityEngine.Ray[] array = obj as UnityEngine.Ray[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Bounds[]))
			{
			    UnityEngine.Bounds[] array = obj as UnityEngine.Bounds[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Ray2D[]))
			{
			    UnityEngine.Ray2D[] array = obj as UnityEngine.Ray2D[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.UpdateSoldierStruct[]))
			{
			    Yoozoo.Gameplay.RTS.UpdateSoldierStruct[] array = obj as Yoozoo.Gameplay.RTS.UpdateSoldierStruct[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.EMarchStatus[]))
			{
			    Yoozoo.Gameplay.RTS.EMarchStatus[] array = obj as Yoozoo.Gameplay.RTS.EMarchStatus[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.CastSkill[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.CastSkill[] array = obj as Yoozoo.Gameplay.RTS.Proto.CastSkill[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.Coordinate[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.Coordinate[] array = obj as Yoozoo.Gameplay.RTS.Proto.Coordinate[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.CrossingGate[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.CrossingGate[] array = obj as Yoozoo.Gameplay.RTS.Proto.CrossingGate[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.SoldierLocation[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.SoldierLocation[] array = obj as Yoozoo.Gameplay.RTS.Proto.SoldierLocation[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.ElementResult[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.ElementResult[] array = obj as Yoozoo.Gameplay.RTS.Proto.ElementResult[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL2[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapPoliceOfficeL4[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[] array = obj as Yoozoo.Gameplay.RTS.Proto.TargetCoordinateType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopsSoldier[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.GlobalVariablesConfig[]))
			{
			    Yoozoo.Gameplay.City.GlobalVariablesConfig[] array = obj as Yoozoo.Gameplay.City.GlobalVariablesConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[]))
			{
			    Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[] array = obj as Yoozoo.Managers.ResourceManagerV2.Framework.Resource.HasAssetResult[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(BunkerHitPointType[]))
			{
			    BunkerHitPointType[] array = obj as BunkerHitPointType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(DG.Tweening.Ease[]))
			{
			    DG.Tweening.Ease[] array = obj as DG.Tweening.Ease[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(DG.Tweening.LoopType[]))
			{
			    DG.Tweening.LoopType[] array = obj as DG.Tweening.LoopType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(DG.Tweening.PathMode[]))
			{
			    DG.Tweening.PathMode[] array = obj as DG.Tweening.PathMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(DG.Tweening.PathType[]))
			{
			    DG.Tweening.PathType[] array = obj as DG.Tweening.PathType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(DG.Tweening.RotateMode[]))
			{
			    DG.Tweening.RotateMode[] array = obj as DG.Tweening.RotateMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.PrimitiveType[]))
			{
			    UnityEngine.PrimitiveType[] array = obj as UnityEngine.PrimitiveType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.SimulationMode[]))
			{
			    UnityEngine.SimulationMode[] array = obj as UnityEngine.SimulationMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.RuntimePlatform[]))
			{
			    UnityEngine.RuntimePlatform[] array = obj as UnityEngine.RuntimePlatform[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.TextureFormat[]))
			{
			    UnityEngine.TextureFormat[] array = obj as UnityEngine.TextureFormat[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.RenderMode[]))
			{
			    UnityEngine.RenderMode[] array = obj as UnityEngine.RenderMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.CameraClearFlags[]))
			{
			    UnityEngine.CameraClearFlags[] array = obj as UnityEngine.CameraClearFlags[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.LightmapsMode[]))
			{
			    UnityEngine.LightmapsMode[] array = obj as UnityEngine.LightmapsMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.FogMode[]))
			{
			    UnityEngine.FogMode[] array = obj as UnityEngine.FogMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.DefaultReflectionMode[]))
			{
			    UnityEngine.Rendering.DefaultReflectionMode[] array = obj as UnityEngine.Rendering.DefaultReflectionMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.AmbientMode[]))
			{
			    UnityEngine.Rendering.AmbientMode[] array = obj as UnityEngine.Rendering.AmbientMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Rendering.ReflectionProbeMode[]))
			{
			    UnityEngine.Rendering.ReflectionProbeMode[] array = obj as UnityEngine.Rendering.ReflectionProbeMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Mars.Got.QualityEnum[]))
			{
			    Yoozoo.Mars.Got.QualityEnum[] array = obj as Yoozoo.Mars.Got.QualityEnum[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[]))
			{
			    Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[] array = obj as Yoozoo.Modules.Download.DownloadWhilePlayingManager.Status[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.PreDownloadManager.Status[]))
			{
			    Yoozoo.Modules.Download.PreDownloadManager.Status[] array = obj as Yoozoo.Modules.Download.PreDownloadManager.Status[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[]))
			{
			    Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[] array = obj as Yoozoo.Managers.ResourceManagerV2.Framework.Resource.ResourceMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.AI.AnimationState[]))
			{
			    Yoozoo.Gameplay.Liberty.AI.AnimationState[] array = obj as Yoozoo.Gameplay.Liberty.AI.AnimationState[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.AI.BattleState[]))
			{
			    Yoozoo.Gameplay.Liberty.AI.BattleState[] array = obj as Yoozoo.Gameplay.Liberty.AI.BattleState[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(TreeType[]))
			{
			    TreeType[] array = obj as TreeType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(System.Environment.SpecialFolder[]))
			{
			    System.Environment.SpecialFolder[] array = obj as System.Environment.SpecialFolder[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(System.Environment.SpecialFolderOption[]))
			{
			    System.Environment.SpecialFolderOption[] array = obj as System.Environment.SpecialFolderOption[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(WorldEntry.MapPointType[]))
			{
			    WorldEntry.MapPointType[] array = obj as WorldEntry.MapPointType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Manager.TouchManager.RaycastTarget[]))
			{
			    Yoozoo.Manager.TouchManager.RaycastTarget[] array = obj as Yoozoo.Manager.TouchManager.RaycastTarget[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.RectTransform.Edge[]))
			{
			    UnityEngine.RectTransform.Edge[] array = obj as UnityEngine.RectTransform.Edge[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.RectTransform.Axis[]))
			{
			    UnityEngine.RectTransform.Axis[] array = obj as UnityEngine.RectTransform.Axis[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Texture2D.EXRFlags[]))
			{
			    UnityEngine.Texture2D.EXRFlags[] array = obj as UnityEngine.Texture2D.EXRFlags[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ScrollRect.MovementType[]))
			{
			    UnityEngine.UI.ScrollRect.MovementType[] array = obj as UnityEngine.UI.ScrollRect.MovementType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ScrollRect.ScrollbarVisibility[]))
			{
			    UnityEngine.UI.ScrollRect.ScrollbarVisibility[] array = obj as UnityEngine.UI.ScrollRect.ScrollbarVisibility[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Corner[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Corner[] array = obj as UnityEngine.UI.GridLayoutGroup.Corner[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Axis[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Axis[] array = obj as UnityEngine.UI.GridLayoutGroup.Axis[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GridLayoutGroup.Constraint[]))
			{
			    UnityEngine.UI.GridLayoutGroup.Constraint[] array = obj as UnityEngine.UI.GridLayoutGroup.Constraint[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.ContentSizeFitter.FitMode[]))
			{
			    UnityEngine.UI.ContentSizeFitter.FitMode[] array = obj as UnityEngine.UI.ContentSizeFitter.FitMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.ContentType[]))
			{
			    UnityEngine.UI.InputField.ContentType[] array = obj as UnityEngine.UI.InputField.ContentType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.InputType[]))
			{
			    UnityEngine.UI.InputField.InputType[] array = obj as UnityEngine.UI.InputField.InputType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.CharacterValidation[]))
			{
			    UnityEngine.UI.InputField.CharacterValidation[] array = obj as UnityEngine.UI.InputField.CharacterValidation[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.InputField.LineType[]))
			{
			    UnityEngine.UI.InputField.LineType[] array = obj as UnityEngine.UI.InputField.LineType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YList.Direction[]))
			{
			    Yoozoo.UI.YGUI.YList.Direction[] array = obj as Yoozoo.UI.YGUI.YList.Direction[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YSlider.Direction[]))
			{
			    Yoozoo.UI.YGUI.YSlider.Direction[] array = obj as Yoozoo.UI.YGUI.YSlider.Direction[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YSlider.TextType[]))
			{
			    Yoozoo.UI.YGUI.YSlider.TextType[] array = obj as Yoozoo.UI.YGUI.YSlider.TextType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YRichText.LineAlignment[]))
			{
			    Yoozoo.UI.YGUI.YRichText.LineAlignment[] array = obj as Yoozoo.UI.YGUI.YRichText.LineAlignment[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[]))
			{
			    Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[] array = obj as Yoozoo.UI.YGUI.YRichUnderlineText.LineAlignment[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Gameplay.PVE.AStarMgr.EShapeType[]))
			{
			    Gameplay.PVE.AStarMgr.EShapeType[] array = obj as Gameplay.PVE.AStarMgr.EShapeType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.GateFitMode[]))
			{
			    UnityEngine.Camera.GateFitMode[] array = obj as UnityEngine.Camera.GateFitMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.FieldOfViewAxis[]))
			{
			    UnityEngine.Camera.FieldOfViewAxis[] array = obj as UnityEngine.Camera.FieldOfViewAxis[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.StereoscopicEye[]))
			{
			    UnityEngine.Camera.StereoscopicEye[] array = obj as UnityEngine.Camera.StereoscopicEye[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.Camera.MonoOrStereoscopicEye[]))
			{
			    UnityEngine.Camera.MonoOrStereoscopicEye[] array = obj as UnityEngine.Camera.MonoOrStereoscopicEye[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ListSelectionMode[]))
			{
			    Yoozoo.UI.YGUI.ListView.ListSelectionMode[] array = obj as Yoozoo.UI.YGUI.ListView.ListSelectionMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ListLayoutType[]))
			{
			    Yoozoo.UI.YGUI.ListView.ListLayoutType[] array = obj as Yoozoo.UI.YGUI.ListView.ListLayoutType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.VertAlignType[]))
			{
			    Yoozoo.UI.YGUI.ListView.VertAlignType[] array = obj as Yoozoo.UI.YGUI.ListView.VertAlignType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.AlignType[]))
			{
			    Yoozoo.UI.YGUI.ListView.AlignType[] array = obj as Yoozoo.UI.YGUI.ListView.AlignType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[]))
			{
			    Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[] array = obj as Yoozoo.UI.YGUI.ListView.ChildrenRenderOrder[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[]))
			{
			    Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[] array = obj as Yoozoo.Modules.Download.DownloadWhilePlayingManager.Error[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Modules.Download.PreDownloadManager.Error[]))
			{
			    Yoozoo.Modules.Download.PreDownloadManager.Error[] array = obj as Yoozoo.Modules.Download.PreDownloadManager.Error[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBrain.UpdateMethod[]))
			{
			    Cinemachine.CinemachineBrain.UpdateMethod[] array = obj as Cinemachine.CinemachineBrain.UpdateMethod[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBrain.BrainUpdateMethod[]))
			{
			    Cinemachine.CinemachineBrain.BrainUpdateMethod[] array = obj as Cinemachine.CinemachineBrain.BrainUpdateMethod[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineBlendDefinition.Style[]))
			{
			    Cinemachine.CinemachineBlendDefinition.Style[] array = obj as Cinemachine.CinemachineBlendDefinition.Style[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineTransposer.BindingMode[]))
			{
			    Cinemachine.CinemachineTransposer.BindingMode[] array = obj as Cinemachine.CinemachineTransposer.BindingMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineTransposer.AngularDampingMode[]))
			{
			    Cinemachine.CinemachineTransposer.AngularDampingMode[] array = obj as Cinemachine.CinemachineTransposer.AngularDampingMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Reporter._LogType[]))
			{
			    Reporter._LogType[] array = obj as Reporter._LogType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(System.Reflection.BindingFlags[]))
			{
			    System.Reflection.BindingFlags[] array = obj as System.Reflection.BindingFlags[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(ReddotNode.ReddotNodeType[]))
			{
			    ReddotNode.ReddotNodeType[] array = obj as ReddotNode.ReddotNodeType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.GraphicRaycaster.BlockingObjects[]))
			{
			    UnityEngine.UI.GraphicRaycaster.BlockingObjects[] array = obj as UnityEngine.UI.GraphicRaycaster.BlockingObjects[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.ScaleMode[]))
			{
			    UnityEngine.UI.CanvasScaler.ScaleMode[] array = obj as UnityEngine.UI.CanvasScaler.ScaleMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.ScreenMatchMode[]))
			{
			    UnityEngine.UI.CanvasScaler.ScreenMatchMode[] array = obj as UnityEngine.UI.CanvasScaler.ScreenMatchMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.CanvasScaler.Unit[]))
			{
			    UnityEngine.UI.CanvasScaler.Unit[] array = obj as UnityEngine.UI.CanvasScaler.Unit[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Type[]))
			{
			    UnityEngine.UI.Image.Type[] array = obj as UnityEngine.UI.Image.Type[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.FillMethod[]))
			{
			    UnityEngine.UI.Image.FillMethod[] array = obj as UnityEngine.UI.Image.FillMethod[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.OriginHorizontal[]))
			{
			    UnityEngine.UI.Image.OriginHorizontal[] array = obj as UnityEngine.UI.Image.OriginHorizontal[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.OriginVertical[]))
			{
			    UnityEngine.UI.Image.OriginVertical[] array = obj as UnityEngine.UI.Image.OriginVertical[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin90[]))
			{
			    UnityEngine.UI.Image.Origin90[] array = obj as UnityEngine.UI.Image.Origin90[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin180[]))
			{
			    UnityEngine.UI.Image.Origin180[] array = obj as UnityEngine.UI.Image.Origin180[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Image.Origin360[]))
			{
			    UnityEngine.UI.Image.Origin360[] array = obj as UnityEngine.UI.Image.Origin360[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.Direction[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.Direction[] array = obj as Yoozoo.UI.YGUI.YScrollRect.Direction[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.MovementType[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.MovementType[] array = obj as Yoozoo.UI.YGUI.YScrollRect.MovementType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[]))
			{
			    Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[] array = obj as Yoozoo.UI.YGUI.YScrollRect.ScrollbarVisibility[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(UnityEngine.UI.Selectable.Transition[]))
			{
			    UnityEngine.UI.Selectable.Transition[] array = obj as UnityEngine.UI.Selectable.Transition[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Mopsicus.Plugins.MobileInputField.ReturnKeyType[]))
			{
			    Mopsicus.Plugins.MobileInputField.ReturnKeyType[] array = obj as Mopsicus.Plugins.MobileInputField.ReturnKeyType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[]))
			{
			    Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[] array = obj as Cinemachine.CinemachineVirtualCameraBase.StandbyUpdateMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Cinemachine.CinemachineVirtualCameraBase.BlendHint[]))
			{
			    Cinemachine.CinemachineVirtualCameraBase.BlendHint[] array = obj as Cinemachine.CinemachineVirtualCameraBase.BlendHint[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(MarchEntity.SquareAction[]))
			{
			    MarchEntity.SquareAction[] array = obj as MarchEntity.SquareAction[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.NormalAttackType[]))
			{
			    com.youzu.warh.protocol.NormalAttackType[] array = obj as com.youzu.warh.protocol.NormalAttackType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.BattleMountUnitType[]))
			{
			    com.youzu.warh.protocol.BattleMountUnitType[] array = obj as com.youzu.warh.protocol.BattleMountUnitType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.Resource[]))
			{
			    com.youzu.warh.protocol.Resource[] array = obj as com.youzu.warh.protocol.Resource[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(com.youzu.warh.protocol.TargetCoordinateType[]))
			{
			    com.youzu.warh.protocol.TargetCoordinateType[] array = obj as com.youzu.warh.protocol.TargetCoordinateType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[]))
			{
			    Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[] array = obj as Yoozoo.Gameplay.Liberty.PlayerController.ControlMode[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[]))
			{
			    Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[] array = obj as Yoozoo.Gameplay.Liberty.PlayerController.EnterExitCarState[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(System.Net.NetworkInformation.NetworkInterfaceType[]))
			{
			    System.Net.NetworkInformation.NetworkInterfaceType[] array = obj as System.Net.NetworkInformation.NetworkInterfaceType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(System.Net.Sockets.AddressFamily[]))
			{
			    System.Net.Sockets.AddressFamily[] array = obj as System.Net.Sockets.AddressFamily[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MarchType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MarchType[] array = obj as Yoozoo.Gameplay.RTS.Proto.MarchType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.NormalAttackType[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.NormalAttackType[] array = obj as Yoozoo.Gameplay.RTS.Proto.NormalAttackType[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg[] array = obj as Yoozoo.Gameplay.RTS.Proto.BattleFormationCfg[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs[] array = obj as Yoozoo.Gameplay.RTS.Proto.BattleFormationCfgs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.EffectElement[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.EffectElement[] array = obj as Yoozoo.Gameplay.RTS.Proto.EffectElement[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapAssembly[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapAssembly[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapAssembly[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod2[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapAssemblyLod3[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapCommonBattleObj[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapMonsterL2[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapMonsterL2[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapMonsterL2[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapMonsterL3[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapMonsterL3[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapMonsterL3[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.MapUnit[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.MapUnit[] array = obj as Yoozoo.Gameplay.RTS.Proto.MapUnit[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop[] array = obj as Yoozoo.Gameplay.RTS.Proto.RtsArenaTroop[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.RtsMapMonster[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.RtsMapMonster[] array = obj as Yoozoo.Gameplay.RTS.Proto.RtsMapMonster[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.SCRoundFight[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.SCRoundFight[] array = obj as Yoozoo.Gameplay.RTS.Proto.SCRoundFight[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo[] array = obj as Yoozoo.Gameplay.RTS.Proto.SiegeFightInfo[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopFightInfo[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopFightInfo[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopFightInfo[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarch[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopMarch[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopMarch[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarchL2[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopMarchL2[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopMarchL2[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopMarchL3[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopMarchL3[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopMarchL3[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.RTS.Proto.TroopTarget[]))
			{
			    Yoozoo.Gameplay.RTS.Proto.TroopTarget[] array = obj as Yoozoo.Gameplay.RTS.Proto.TroopTarget[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomEventConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomEventConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomEventConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomEventConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomBehaviorConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoleInfoConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoleInfoConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoleConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoleConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoleConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoleConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoleConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoleConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventTreeConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventTreeConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventTreeConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventTreeConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiNPCBonePathConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiNPCQueueMoodConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiOperateInteractiveConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiSpecialConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiSpecialConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiSpecialConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiSpecialConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiSpecialConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiSpecialConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiSpecialRecoverConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfigs[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventPointRoomConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiGoodsConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiGoodsConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiGoodsConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiEventPointConfig[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiEventPointConfig[] array = obj as Yoozoo.Gameplay.City.CityRealAiEventPointConfig[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomDatas[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomDatas[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomDatas[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
			else if (type == typeof(Yoozoo.Gameplay.City.CityRealAiRoomData[]))
			{
			    Yoozoo.Gameplay.City.CityRealAiRoomData[] array = obj as Yoozoo.Gameplay.City.CityRealAiRoomData[];
				translator.Get(L, obj_idx, out array[array_idx]);
				return true;
			}
            return false;
		}
	}
}